79 lines
2.2 KiB
CMake
79 lines
2.2 KiB
CMake
# cpp-httplib dependency management
|
|
|
|
if(EMSCRIPTEN)
|
|
set(YAZE_HTTPLIB_TARGETS "" CACHE INTERNAL "cpp-httplib targets")
|
|
return()
|
|
endif()
|
|
|
|
include(cmake/CPM.cmake)
|
|
include(cmake/dependencies.lock)
|
|
|
|
message(STATUS "Setting up cpp-httplib ${HTTPLIB_VERSION}")
|
|
|
|
if(YAZE_PLATFORM_IOS)
|
|
CPMAddPackage(
|
|
NAME httplib
|
|
VERSION ${HTTPLIB_VERSION}
|
|
GITHUB_REPOSITORY yhirose/cpp-httplib
|
|
GIT_TAG v${HTTPLIB_VERSION}
|
|
DOWNLOAD_ONLY YES
|
|
)
|
|
|
|
if(NOT TARGET httplib)
|
|
add_library(httplib INTERFACE)
|
|
target_include_directories(httplib INTERFACE ${httplib_SOURCE_DIR})
|
|
endif()
|
|
if(NOT TARGET httplib::httplib)
|
|
add_library(httplib::httplib ALIAS httplib)
|
|
endif()
|
|
|
|
set(YAZE_HTTPLIB_TARGETS httplib::httplib)
|
|
set(YAZE_HTTPLIB_TARGETS httplib::httplib CACHE INTERNAL "cpp-httplib targets")
|
|
message(STATUS "cpp-httplib configured as header-only for iOS")
|
|
return()
|
|
endif()
|
|
|
|
set(_YAZE_USE_SYSTEM_HTTPLIB ${YAZE_USE_SYSTEM_DEPS})
|
|
|
|
# Try to use system packages first
|
|
if(_YAZE_USE_SYSTEM_HTTPLIB)
|
|
find_package(httplib QUIET)
|
|
if(httplib_FOUND)
|
|
message(STATUS "Using system httplib")
|
|
set(YAZE_HTTPLIB_TARGETS httplib::httplib CACHE INTERNAL "cpp-httplib targets")
|
|
return()
|
|
elseif(YAZE_USE_SYSTEM_DEPS)
|
|
message(WARNING "System httplib not found despite YAZE_USE_SYSTEM_DEPS=ON; falling back to CPM download")
|
|
endif()
|
|
endif()
|
|
|
|
CPMAddPackage(
|
|
NAME httplib
|
|
VERSION ${HTTPLIB_VERSION}
|
|
GITHUB_REPOSITORY yhirose/cpp-httplib
|
|
GIT_TAG v${HTTPLIB_VERSION}
|
|
OPTIONS
|
|
"HTTPLIB_INSTALL OFF"
|
|
"HTTPLIB_TEST OFF"
|
|
"HTTPLIB_COMPILE OFF"
|
|
"HTTPLIB_USE_OPENSSL_IF_AVAILABLE OFF"
|
|
"HTTPLIB_USE_ZLIB_IF_AVAILABLE OFF"
|
|
"HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF"
|
|
"HTTPLIB_USE_ZSTD_IF_AVAILABLE OFF"
|
|
)
|
|
|
|
# Verify target is available
|
|
if(TARGET httplib::httplib)
|
|
message(STATUS "httplib::httplib target found")
|
|
elseif(TARGET httplib)
|
|
add_library(httplib::httplib ALIAS httplib)
|
|
message(STATUS "Created httplib::httplib alias")
|
|
else()
|
|
message(FATAL_ERROR "httplib target not found after CPM fetch")
|
|
endif()
|
|
|
|
set(YAZE_HTTPLIB_TARGETS httplib::httplib)
|
|
set(YAZE_HTTPLIB_TARGETS httplib::httplib CACHE INTERNAL "cpp-httplib targets")
|
|
|
|
message(STATUS "cpp-httplib setup complete")
|