microsoft / microsoft/libHttpClient
Consumer-side fallout from #965 (WSC): unconditional Linux deps, missing Apple toggle, silent submodule failures
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 295
- Fork
- 144
- Merge trung bình
- 2 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 2
Mô tả
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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách phân chia phần việc còn lại giữa CMakeLists.txt, install_dependencies.bash, Apple project.pbxproj, Win32.Shared.vcxitems, GDK.Shared.vcxitems và các định nghĩa tiền xử lý theo từng tệp từ #988. Trước tiên, hãy xem lại các thay đổi bổ trợ hiện có và các build guard được liệt kê. Công việc được coi là hoàn tất khi các bản build tắt tính năng nén tránh được các dependency không cần thiết, Apple cung cấp tùy chọn chuyển đổi, các submodule Win32/GDK bị thiếu được báo cáo và việc audit các override hoàn tất.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cmake, cpp, git, shell
- Lĩnh vực
- build-system, devtools
- Loại issue
- Lỗi
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100