diff --git a/CMakeLists.txt b/CMakeLists.txt index 973b1e97..5184c6d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,6 +163,20 @@ option(YAZE_FORCE_BUNDLED_ABSL # Create a common interface target for shared settings add_library(yaze_common INTERFACE) target_compile_features(yaze_common INTERFACE cxx_std_23) + +# Configure httplib before including it (header-only, minimal dependencies) +# Disable optional compression features to avoid Windows build issues +if (WIN32) +set(HTTPLIB_COMPILE OFF CACHE BOOL "Use httplib as header-only library" FORCE) +set(HTTPLIB_USE_ZLIB_IF_AVAILABLE OFF CACHE BOOL "Disable zlib to avoid Windows issues" FORCE) +set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF CACHE BOOL "Disable brotli" FORCE) +set(HTTPLIB_USE_ZSTD_IF_AVAILABLE OFF CACHE BOOL "Disable zstd" FORCE) +set(HTTPLIB_REQUIRE_OPENSSL OFF CACHE BOOL "Don't require OpenSSL" FORCE) +set(HTTPLIB_REQUIRE_ZLIB OFF CACHE BOOL "Don't require zlib" FORCE) +set(HTTPLIB_REQUIRE_BROTLI OFF CACHE BOOL "Don't require brotli" FORCE) +set(HTTPLIB_REQUIRE_ZSTD OFF CACHE BOOL "Don't require zstd" FORCE) +endif() + target_include_directories(yaze_common INTERFACE ${CMAKE_SOURCE_DIR}/third_party/httplib) if(YAZE_WITH_JSON) @@ -232,6 +246,9 @@ elseif(YAZE_PLATFORM_WINDOWS) message(STATUS " Recommend keeping JSON enabled (it's header-only)") endif() + # Note about httplib configuration + message(STATUS "httplib: Using header-only mode (zlib/brotli/zstd disabled)") + # Windows-specific architecture detection and configuration if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64|aarch64") target_compile_definitions(yaze_common INTERFACE YAZE_ARCH_ARM64)