build/cmake/FindHttpd.cmake (53 lines of code) (raw):
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()