| # Generates a macro to auto-configure everything | |
| @PACKAGE_INIT@ | |
| # Setting these here so they're accessible after install. | |
| # Might be useful for some users to check which settings were used. | |
| set(HTTPLIB_IS_USING_OPENSSL @HTTPLIB_IS_USING_OPENSSL@) | |
| set(HTTPLIB_IS_USING_WOLFSSL @HTTPLIB_IS_USING_WOLFSSL@) | |
| set(HTTPLIB_IS_USING_MBEDTLS @HTTPLIB_IS_USING_MBEDTLS@) | |
| set(HTTPLIB_IS_USING_ZLIB @HTTPLIB_IS_USING_ZLIB@) | |
| set(HTTPLIB_IS_COMPILED @HTTPLIB_COMPILE@) | |
| set(HTTPLIB_IS_USING_BROTLI @HTTPLIB_IS_USING_BROTLI@) | |
| set(HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO @HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO@) | |
| set(HTTPLIB_VERSION @PROJECT_VERSION@) | |
| include(CMakeFindDependencyMacro) | |
| # We add find_dependency calls here to not make the end-user have to call them. | |
| find_dependency(Threads) | |
| if(@HTTPLIB_IS_USING_OPENSSL@) | |
| # OpenSSL COMPONENTS were added in Cmake v3.11 | |
| if(CMAKE_VERSION VERSION_LESS "3.11") | |
| find_dependency(OpenSSL @_HTTPLIB_OPENSSL_MIN_VER@) | |
| else() | |
| # Once the COMPONENTS were added, they were made optional when not specified. | |
| # Since we use both, we need to search for both. | |
| find_dependency(OpenSSL @_HTTPLIB_OPENSSL_MIN_VER@ COMPONENTS Crypto SSL) | |
| endif() | |
| set(httplib_OpenSSL_FOUND ${OpenSSL_FOUND}) | |
| endif() | |
| if(@HTTPLIB_IS_USING_ZLIB@) | |
| find_dependency(ZLIB) | |
| set(httplib_ZLIB_FOUND ${ZLIB_FOUND}) | |
| endif() | |
| if(@HTTPLIB_IS_USING_WOLFSSL@) | |
| find_dependency(wolfssl) | |
| set(httplib_wolfssl_FOUND ${wolfssl_FOUND}) | |
| endif() | |
| if(@HTTPLIB_IS_USING_MBEDTLS@) | |
| find_dependency(MbedTLS) | |
| set(httplib_MbedTLS_FOUND ${MbedTLS_FOUND}) | |
| endif() | |
| if(@HTTPLIB_IS_USING_BROTLI@) | |
| # Needed so we can use our own FindBrotli.cmake in this file. | |
| # Note that the FindBrotli.cmake file is installed in the same dir as this file. | |
| list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") | |
| set(BROTLI_USE_STATIC_LIBS @BROTLI_USE_STATIC_LIBS@) | |
| find_dependency(Brotli COMPONENTS common encoder decoder) | |
| set(httplib_Brotli_FOUND ${Brotli_FOUND}) | |
| endif() | |
| if(@HTTPLIB_IS_USING_ZSTD@) | |
| set(httplib_fd_zstd_quiet_arg) | |
| if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) | |
| set(httplib_fd_zstd_quiet_arg QUIET) | |
| endif() | |
| set(httplib_fd_zstd_required_arg) | |
| if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) | |
| set(httplib_fd_zstd_required_arg REQUIRED) | |
| endif() | |
| find_package(zstd 1.5.6 CONFIG QUIET) | |
| if(NOT zstd_FOUND) | |
| find_package(PkgConfig ${httplib_fd_zstd_quiet_arg} ${httplib_fd_zstd_required_arg}) | |
| if(PKG_CONFIG_FOUND) | |
| pkg_check_modules(zstd ${httplib_fd_zstd_quiet_arg} ${httplib_fd_zstd_required_arg} IMPORTED_TARGET libzstd) | |
| if(TARGET PkgConfig::zstd) | |
| add_library(zstd::libzstd ALIAS PkgConfig::zstd) | |
| endif() | |
| endif() | |
| endif() | |
| set(httplib_zstd_FOUND ${zstd_FOUND}) | |
| endif() | |
| # Mildly useful for end-users | |
| # Not really recommended to be used though | |
| set_and_check(HTTPLIB_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@") | |
| # Lets the end-user find the header path with the header appended | |
| # This is helpful if you're using Cmake's pre-compiled header feature | |
| set_and_check(HTTPLIB_HEADER_PATH "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/httplib.h") | |
| check_required_components(httplib) | |
| # Brings in the target library, but only if all required components are found | |
| if(NOT DEFINED httplib_FOUND OR httplib_FOUND) | |
| include("${CMAKE_CURRENT_LIST_DIR}/httplibTargets.cmake") | |
| endif() | |
| # Outputs a "found httplib /usr/include/httplib.h" message when using find_package(httplib) | |
| include(FindPackageMessage) | |
| if(TARGET httplib::httplib) | |
| set(HTTPLIB_FOUND TRUE) | |
| # Since the compiled version has a lib, show that in the message | |
| if(@HTTPLIB_COMPILE@) | |
| # The list of configurations is most likely just 1 unless they installed a debug & release | |
| get_target_property(_httplib_configs httplib::httplib "IMPORTED_CONFIGURATIONS") | |
| # Need to loop since the "IMPORTED_LOCATION" property isn't want we want. | |
| # Instead, we need to find the IMPORTED_LOCATION_RELEASE or IMPORTED_LOCATION_DEBUG which has the lib path. | |
| foreach(_httplib_conf "${_httplib_configs}") | |
| # Grab the path to the lib and sets it to HTTPLIB_LIBRARY | |
| get_target_property(HTTPLIB_LIBRARY httplib::httplib "IMPORTED_LOCATION_${_httplib_conf}") | |
| # Check if we found it | |
| if(HTTPLIB_LIBRARY) | |
| break() | |
| endif() | |
| endforeach() | |
| unset(_httplib_configs) | |
| unset(_httplib_conf) | |
| find_package_message(httplib "Found httplib: ${HTTPLIB_LIBRARY} (found version \"${HTTPLIB_VERSION}\")" "[${HTTPLIB_LIBRARY}][${HTTPLIB_HEADER_PATH}]") | |
| else() | |
| find_package_message(httplib "Found httplib: ${HTTPLIB_HEADER_PATH} (found version \"${HTTPLIB_VERSION}\")" "[${HTTPLIB_HEADER_PATH}]") | |
| endif() | |
| endif() |