# SPDX-FileCopyrightText: 2015-2025 Alexey Rochev # # SPDX-License-Identifier: CC0-1.0 # Using macros instead of functions since find_package can set variable that we need to propagate to parent scope macro(find_system_httplib) # httplib breaks backwards compatibility on each minor version (i.e. second component) # Because of that we can't pass minimum version to find_package message(STATUS "Trying cpp-httplib as a CMake package") find_package(httplib) if (httplib_FOUND) message(STATUS "Found cpp-httplib ${httplib_VERSION} as a CMake package") else () message(STATUS "Did not find cpp-httplib as a CMake package") message(STATUS "Trying cpp-httplib using pkg-config") pkg_check_modules(httplib IMPORTED_TARGET "cpp-httplib >= 0.18.7") unset(module) if (httplib_FOUND) message(STATUS "Found cpp-httplib ${httplib_VERSION} using pkg-config") else () message(STATUS "Did not find cpp-httplib using pkg-config") endif () endif () endmacro() macro(include_bundled_httplib) if (NOT WIN32) set(HTTPLIB_REQUIRE_OPENSSL ON) endif() add_subdirectory(3rdparty/cpp-httplib EXCLUDE_FROM_ALL) endmacro() macro(find_cpp_httplib) if (TREMOTESF_WITH_HTTPLIB STREQUAL "auto") find_system_httplib() if (NOT httplib_FOUND) message(WARNING "Using bundled cpp-httplib") set(TREMOTESF_WITH_HTTPLIB "bundled" CACHE STRING "" FORCE) include_bundled_httplib() endif() elseif (TREMOTESF_WITH_HTTPLIB STREQUAL "system") find_system_httplib() elseif (TREMOTESF_WITH_HTTPLIB STREQUAL "bundled") message(STATUS "Using bundled cpp-httplib") include_bundled_httplib() else() # We shouldn't actually get here message(FATAL_ERROR "Invalid TREMOTESF_WITH_HTTPLIB value ${TREMOTESF_WITH_HTTPLIB}") endif() endmacro()