- find_path(CPPHTTPLIB_INCLUDE_DIR httplib.h)
- if(CPPHTTPLIB_INCLUDE_DIR)
- file(READ "${CPPHTTPLIB_INCLUDE_DIR}/httplib.h" _httplib_h)
- string(REGEX MATCH "#define CPPHTTPLIB_VERSION \"([0-9]+).([0-9]+).*([0-9]+)\"" _ "${_httplib_h}")
- set(_cpphttplib_version_string "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
- if(NOT "${CMAKE_MATCH_0}" STREQUAL "" AND "${_cpphttplib_version_string}" VERSION_GREATER_EQUAL "${CppHttplib_FIND_VERSION}")
- # Some dists like Fedora package cpp-httplib as a single header while some
- # dists like Debian package it as a traditional library.
- find_library(CPPHTTPLIB_LIBRARY cpp-httplib)
- if(NOT CPPHTTPLIB_LIBRARY)
- find_library(CPPHTTPLIB_LIBRARY httplib)
- endif()
+ find_package(httplib QUIET)
+ if(httplib_FOUND)
+ message(STATUS "Using system CppHttplib via CMake config")
+ add_library(dep_cpphttplib ALIAS httplib::httplib)
+ register_dependency(CppHttplib "SYSTEM (cmake)" "${httplib_VERSION}")
+ else()
+ find_path(CPPHTTPLIB_INCLUDE_DIR httplib.h)
+ if(CPPHTTPLIB_INCLUDE_DIR)
+ file(READ "${CPPHTTPLIB_INCLUDE_DIR}/httplib.h" _httplib_h)
+ string(REGEX MATCH "#define CPPHTTPLIB_VERSION \"([0-9]+).([0-9]+).*([0-9]+)\"" _ "${_httplib_h}")
+ set(_cpphttplib_version_string "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+ if(NOT "${CMAKE_MATCH_0}" STREQUAL "" AND "${_cpphttplib_version_string}" VERSION_GREATER_EQUAL "${CppHttplib_FIND_VERSION}")
+ # Some dists like Fedora package cpp-httplib as a single header while some
+ # dists like Debian package it as a traditional library.
+ find_library(CPPHTTPLIB_LIBRARY cpp-httplib)
+ if(NOT CPPHTTPLIB_LIBRARY)
+ find_library(CPPHTTPLIB_LIBRARY httplib)
+ endif()