microsoft / microsoft/libHttpClient
Consumer-side fallout from #965 (WSC): unconditional Linux deps, missing Apple toggle, silent submodule failures
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 295
- フォーク
- 144
- 平均マージ
- 2日 19時間
- マージ済み PR(30日)
- 2
説明
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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、残っている作業を CMakeLists.txt、install_dependencies.bash、Apple project.pbxproj、Win32.Shared.vcxitems、GDK.Shared.vcxitems、および #988 のファイルごとのプリプロセッサ定義に分けます。既存の関連変更と、一覧にあるビルドガードを先に確認します。圧縮を無効にしたビルドで不要な依存関係が回避され、Apple で切り替えが公開され、存在しない Win32/GDK サブモジュールが報告され、オーバーライドの監査が完了すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cmake, cpp, git, shell
- 領域
- build-system, devtools
- issue の種類
- バグ
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100