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
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.
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
CMakeLists.txt:84-86addswebsocketpp_websocket.cpp/.htoLINUX_SOURCE_FILESunconditionally. Consumers building withHC_NOWEBSOCKETSstill compile the TU and requireExternal/asio+External/websocketppsubmodules to be initialized.Build/libHttpClient.Linux/install_dependencies.bashinstallszlib1g/zlib1g-devunconditionally. Should honorHC_NOZLIBandHC_NOWEBSOCKETS.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.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. GDK: add ASIO_DISABLE_SERIAL_PORT to per-file websocketpp_websocket.cpp defines (follow-up to #987) #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 WebSocket Compression support #965 and should be audited.Why "turn it off" doesn't free consumers
websocketpp_websocket.cppis in the source list unconditionally;External/asio+External/websocketppare inCOMMON_INCLUDE_DIRSunconditionally;install_dependencies.bashinstalls zlib unconditionally.External/boost-wintlssubmodule is required for WSC; missing submodule silently disables the feature.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.