include(FetchContent) # Work around curl's old cmake_minimum_required for CMake 4.x set(CMAKE_POLICY_VERSION_MINIMUM 3.5 CACHE STRING "" FORCE) FetchContent_Declare( CURL URL https://github.com/curl/curl/releases/download/curl-8_12_1/curl-8.12.1.tar.xz DOWNLOAD_EXTRACT_TIMESTAMP TRUE ) # Minimal curl build — static, SChannel TLS, no optional deps set(BUILD_CURL_EXE OFF CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(BUILD_TESTING OFF CACHE BOOL "" FORCE) # TLS backend: Windows native SChannel set(CURL_USE_OPENSSL OFF CACHE BOOL "" FORCE) set(CURL_USE_SCHANNEL ON CACHE BOOL "" FORCE) # Disable optional compression/protocol deps set(CURL_ZLIB OFF CACHE BOOL "" FORCE) set(CURL_BROTLI OFF CACHE BOOL "" FORCE) set(CURL_ZSTD OFF CACHE BOOL "" FORCE) set(USE_NGHTTP2 OFF CACHE BOOL "" FORCE) set(CURL_USE_LIBSSH2 OFF CACHE BOOL "" FORCE) set(CURL_USE_LIBPSL OFF CACHE BOOL "" FORCE) set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) set(CURL_DISABLE_LDAPS ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(CURL) add_library(http STATIC src/http.cpp ) target_include_directories(http PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries(http PUBLIC CURL::libcurl )