microsoft / microsoft/libHttpClient

Consumer-side fallout from #965 (WSC): unconditional Linux deps, missing Apple toggle, silent submodule failures

Abierto
#989 1 comentario 0 reacciones 0 asignados Ver en GitHub

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-86 adds websocketpp_websocket.cpp/.h to LINUX_SOURCE_FILES unconditionally. Consumers building with HC_NOWEBSOCKETS still compile the TU and require External/asio + External/websocketpp submodules to be initialized.
  • (fixed by companion PR) Build/libHttpClient.Linux/install_dependencies.bash installs zlib1g / zlib1g-dev unconditionally. Should honor HC_NOZLIB and HC_NOWEBSOCKETS.
  • Apple has no HC_ENABLE_WEBSOCKET_COMPRESSION toggle. The macro is hard-coded =1 in 4 places in Build/libHttpClient.Apple.C/libHttpClient.xcodeproj/project.pbxproj (iOS/macOS Debug/Release). Other HC_* knobs are exposed as build settings; this one should follow suit.
  • Win32 / GDK silent feature loss when boost-wintls submodule is missing. All WSC-related per-file ClCompile entries in Win32.Shared.vcxitems / GDK.Shared.vcxitems are guarded with Exists('$(HCRoot)\External\boost-wintls\include\wintls.hpp') AND HCEnableWebSocketCompression == 'true'. A consumer who forgets git submodule update --init --recursive gets a working build that silently lacks compression. Suggest emitting an MSBuild <Error> (or at least <Warning>) when HCEnableWebSocketCompression=true and the submodule file is absent.
  • %(PreprocessorDefinitions) inheritance bug sweep. #988 fixes one instance (ASIO_DISABLE_SERIAL_PORT was dropped on the per-file websocketpp_websocket.cpp overrides because shared-items %(PreprocessorDefinitions) doesn't inherit from the consuming project's ItemDefinitionGroup). 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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.