| find_path(HTTPD_INCLUDE_DIR | |
| NAMES httpd.h | |
| PATH_SUFFIXES | |
| include | |
| ) | |
| find_library(HTTPD_LIBRARY | |
| NAMES libhttpd | |
| PATH_SUFFIXES lib | |
| ) | |
| find_file(HTTPD_DLL | |
| NAMES libhttpd.dll | |
| PATH_SUFFIXES bin | |
| ) | |
| find_library(MOD_DAV_LIBRARY | |
| NAMES mod_dav | |
| PATH_SUFFIXES lib | |
| ) | |
| if (HTTPD_INCLUDE_DIR AND EXISTS "${HTTPD_INCLUDE_DIR}/ap_release.h") | |
| file( | |
| STRINGS "${HTTPD_INCLUDE_DIR}/ap_release.h" VERSION_STRINGS | |
| REGEX "#define (AP_SERVER_MAJORVERSION_NUMBER|AP_SERVER_MINORVERSION_NUMBER|AP_SERVER_PATCHLEVEL_NUMBER)" | |
| ) | |
| string(REGEX REPLACE ".*AP_SERVER_MAJORVERSION_NUMBER +([0-9]+).*" "\\1" HTTPD_VERSION_MAJOR ${VERSION_STRINGS}) | |
| string(REGEX REPLACE ".*AP_SERVER_MINORVERSION_NUMBER +([0-9]+).*" "\\1" HTTPD_VERSION_MINOR ${VERSION_STRINGS}) | |
| string(REGEX REPLACE ".*AP_SERVER_PATCHLEVEL_NUMBER +([0-9]+).*" "\\1" HTTPD_VERSION_PATCH ${VERSION_STRINGS}) | |
| set(HTTPD_VERSION "${HTTPD_VERSION_MAJOR}.${HTTPD_VERSION_MINOR}.${HTTPD_VERSION_PATCH}") | |
| endif() | |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS( | |
| Httpd | |
| REQUIRED_VARS | |
| HTTPD_LIBRARY | |
| HTTPD_INCLUDE_DIR | |
| MOD_DAV_LIBRARY | |
| VERSION_VAR | |
| HTTPD_VERSION | |
| ) | |
| if(HTTPD_FOUND) | |
| if(NOT TARGET httpd::httpd) | |
| add_library(httpd::httpd SHARED IMPORTED) | |
| set_target_properties(httpd::httpd PROPERTIES | |
| INTERFACE_INCLUDE_DIRECTORIES ${HTTPD_INCLUDE_DIR} | |
| IMPORTED_LOCATION ${HTTPD_DLL} | |
| IMPORTED_IMPLIB ${HTTPD_LIBRARY} | |
| ) | |
| endif() | |
| if(NOT TARGET httpd::mod_dav) | |
| add_library(httpd::mod_dav STATIC IMPORTED) | |
| set_target_properties(httpd::mod_dav PROPERTIES | |
| INTERFACE_INCLUDE_DIRECTORIES ${HTTPD_INCLUDE_DIR} | |
| IMPORTED_LOCATION ${MOD_DAV_LIBRARY} | |
| ) | |
| endif() | |
| endif() |