blob: 0a383dcbd0f0b59fe246d401f02cfa5987d52da1 [file]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# FindHttpd.cmake -- CMake module for Httpd library
#
include(GNUInstallDirs)
if(WIN32)
find_path(HTTPD_INCLUDE_DIR
NAMES httpd.h
PATH_SUFFIXES
include
)
find_library(HTTPD_LIBRARY
NAMES libhttpd
PATH_SUFFIXES lib
)
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()
set(_httpd_modules_dir "${CMAKE_INSTALL_BINDIR}")
else()
find_program(APXS_EXECUTABLE
NAMES apxs2 apxs
PATH /usr/local/apache2/bin /usr/local/apache/bin /usr/bin /usr/sbin)
function(_APXS_CONFIG_VAR VARNAME OUTVAR)
execute_process(COMMAND "${APXS_EXECUTABLE}" -q ${VARNAME}
RESULT_VARIABLE _APXS_SUCCESS
OUTPUT_VARIABLE _APXS_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
set(${OUTVAR} "${_APXS_OUTPUT}" PARENT_SCOPE)
endfunction()
if(APXS_EXECUTABLE)
_APXS_CONFIG_VAR("HTTPD_VERSION" HTTPD_VERSION)
_APXS_CONFIG_VAR("INCLUDEDIR" HTTPD_INCLUDE_DIR)
set(_httpd_modules_dir "${CMAKE_INSTALL_LIBEXECDIR}")
set(HTTPD_FOUND TRUE)
endif()
endif()
set(HTTPD_MODULES_DIR "${_httpd_modules_dir}"
CACHE PATH "Install directory for Apache modules")
find_package_handle_standard_args(
Httpd
REQUIRED_VARS
HTTPD_INCLUDE_DIR
HTTPD_MODULES_DIR
VERSION_VAR
HTTPD_VERSION
)
if(HTTPD_FOUND)
if(NOT TARGET httpd::httpd)
add_library(httpd::httpd INTERFACE IMPORTED)
set_target_properties(httpd::httpd PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${HTTPD_INCLUDE_DIR}
)
if(WIN32)
set_target_properties(httpd::httpd PROPERTIES
INTERFACE_LINK_LIBRARIES ${HTTPD_LIBRARY}
)
elseif(APPLE)
target_link_options(httpd::httpd INTERFACE
"-Wl,-undefined,dynamic_lookup"
)
endif()
endif()
if(NOT TARGET httpd::mod_dav)
add_library(httpd::mod_dav INTERFACE IMPORTED)
set_target_properties(httpd::mod_dav PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${HTTPD_INCLUDE_DIR}
)
if(WIN32)
set_target_properties(httpd::mod_dav PROPERTIES
INTERFACE_LINK_LIBRARIES ${MOD_DAV_LIBRARY}
)
elseif(APPLE)
target_link_options(httpd::mod_dav INTERFACE
"-Wl,-undefined,dynamic_lookup"
)
endif()
endif()
endif()