microsoft / microsoft/libHttpClient
Consumer-side fallout from #965 (WSC): unconditional Linux deps, missing Apple toggle, silent submodule failures
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 295
- Forks
- 144
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 2
Descripción
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.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza por dividir el trabajo restante entre CMakeLists.txt, install_dependencies.bash, el Apple project.pbxproj, Win32.Shared.vcxitems, GDK.Shared.vcxitems y las definiciones del preprocesador por archivo de #988. Revisa primero los cambios complementarios existentes y las protecciones de compilación indicadas. Se considera terminado cuando las compilaciones con la compresión desactivada eviten dependencias innecesarias, Apple exponga el conmutador, se informen los submódulos Win32/GDK que falten y se complete la auditoría de las sobrescrituras.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cmake, cpp, git, shell
- Área
- build-system, devtools
- Tipo de issue
- Error
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100