microsoft / microsoft/libHttpClient
Consumer-side fallout from #965 (WSC): unconditional Linux deps, missing Apple toggle, silent submodule failures
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 295
- Forks
- 144
- Merge moyen
- 2 j 19 h
- PR mergées (30 j)
- 2
Description
Tracking issue for consumer-side fallout from #965 (WebSocket Compression support). Even with compression turned off, consumers must take on new dependencies and submodules. Filing here so the work can be scoped/split.
Gaps identified
- (fixed by companion PR) Linux
CMakeLists.txt:84-86addswebsocketpp_websocket.cpp/.htoLINUX_SOURCE_FILESunconditionally. Consumers building withHC_NOWEBSOCKETSstill compile the TU and requireExternal/asio+External/websocketppsubmodules to be initialized. - (fixed by companion PR)
Build/libHttpClient.Linux/install_dependencies.bashinstallszlib1g/zlib1g-devunconditionally. Should honorHC_NOZLIBandHC_NOWEBSOCKETS. - Apple has no
HC_ENABLE_WEBSOCKET_COMPRESSIONtoggle. The macro is hard-coded=1in 4 places inBuild/libHttpClient.Apple.C/libHttpClient.xcodeproj/project.pbxproj(iOS/macOS Debug/Release). OtherHC_*knobs are exposed as build settings; this one should follow suit. - Win32 / GDK silent feature loss when
boost-wintlssubmodule is missing. All WSC-related per-fileClCompileentries inWin32.Shared.vcxitems/GDK.Shared.vcxitemsare guarded withExists('$(HCRoot)\External\boost-wintls\include\wintls.hpp')ANDHCEnableWebSocketCompression == 'true'. A consumer who forgetsgit submodule update --init --recursivegets a working build that silently lacks compression. Suggest emitting an MSBuild<Error>(or at least<Warning>) whenHCEnableWebSocketCompression=trueand the submodule file is absent. -
%(PreprocessorDefinitions)inheritance bug sweep. #988 fixes one instance (ASIO_DISABLE_SERIAL_PORTwas dropped on the per-filewebsocketpp_websocket.cppoverrides because shared-items%(PreprocessorDefinitions)doesn't inherit from the consuming project'sItemDefinitionGroup). The same pattern may exist for other per-file overrides added in #965 and should be audited.
Why "turn it off" doesn't free consumers
| Platform | Issue |
|---|---|
| Linux | websocketpp_websocket.cpp is in the source list unconditionally; External/asio + External/websocketpp are in COMMON_INCLUDE_DIRS unconditionally; install_dependencies.bash installs zlib unconditionally. |
| Win32/GDK | New External/boost-wintls submodule is required for WSC; missing submodule silently disables the feature. |
| Apple | No off switch at all. |
Companion PR
A companion PR addresses the first two checklist items. Filing the others here because they involve broader design decisions (Apple build settings; MSBuild error emission; per-file-defines audit) that may warrant author input.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par répartir le travail restant entre CMakeLists.txt, install_dependencies.bash, le Apple project.pbxproj, Win32.Shared.vcxitems, GDK.Shared.vcxitems et les définitions du préprocesseur par fichier de #988. Examinez d’abord les modifications complémentaires existantes et les gardes de compilation indiqués. Le travail est terminé lorsque les builds avec la compression désactivée évitent les dépendances inutiles, qu’Apple expose le basculement, que les sous-modules Win32/GDK manquants sont signalés et que l’audit des remplacements est terminé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cmake, cpp, git, shell
- Domaine
- build-system, devtools
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100