include(CMakeParseArguments) find_program(APACHE_HTTPD_COMMAND httpd ) if(APACHE_HTTPD_COMMAND) message("found vanilla apache named httpd supposing APACHE_INSTALL_DIR -->${APACHE_INSTALL_DIR}<-") else() if(CMAKE_SYSTEM_NAME MATCHES "Linux") find_program(APACHE_HTTPD_COMMAND apache2 ) if(APACHE_HTTPD_COMMAND) message("found apache2 in a debian folder structure") get_filename_component(TMP ${APACHE_HTTPD_COMMAND} PATH ) else() message(FATAL_ERROR "unable to find apache on system ${CMAKE_SYSTEM_NAME}") endif() else() message(FATAL_ERROR "unable to handle system ${CMAKE_SYSTEM_NAME}") endif() endif() if(APACHE_HTTPD_COMMAND) execute_process(COMMAND ${APACHE_HTTPD_COMMAND} -v OUTPUT_VARIABLE APACHE_tmpvar OUTPUT_STRIP_TRAILING_WHITESPACE) message("apache version---->${APACHE_tmpvar}<---") STRING(REGEX REPLACE ".*: Apache/([.0-9]+).*" "\\1" APACHE_VERSION_STRING "${APACHE_tmpvar}" ) message("Apache version -->${APACHE_VERSION_STRING}<--") get_filename_component(TMP ${APACHE_HTTPD_COMMAND} PATH ) get_filename_component(APACHE_INSTALL_DIR ${TMP} PATH ) find_program(APACHE_CTL_COMMAND apachectl apache2ctl PATHS ${TMP} ) find_path(APACHE_MODULES_DIR NAMES mod_auth_basic.so PATHS ${APACHE_INSTALL_DIR}/modules /usr/lib/apache2/modules/ DOC "base apache module directory" ) find_file(APACHE_MIME_TYPES NAMES mime.types PATHS ${APACHE_INSTALL_DIR}/conf /etc DOC "mime type file" ) find_file(APACHE_MIME_MAGIC NAMES magic PATHS ${APACHE_INSTALL_DIR}/conf /etc/apache2 DOC "magic mime file" ) else() message("CMAKE_SYSTEM --> ${CMAKE_SYSTEM}") message(FATAL_ERROR "unable to find apache") endif() include(FindPackageHandleStandardArgs) message("Apache_FIND_VERSION---->${Apache_FIND_VERSION}<---") FIND_PACKAGE_HANDLE_STANDARD_ARGS( Apache REQUIRED_VARS_APACHE_HTTPD_COMMAND VERSION_VAR APACHE_VERSION_STRING ) function(apache_search_module) cmake_parse_arguments(APACHE_MSRC "" "NAME;FILENAME" "" ${ARGN} ) if(NOT APACHE_MSRC_NAME) message(FATAL_ERROR "apache_search_module need at least a name") else() if(NOT APACHE_MSRC_FILENAME) set(APACHE_MSRC_FILENAME "mod_${APACHE_MSRC_NAME}.so") set(APACHE_MSRC_NAME "${APACHE_MSRC_NAME}_module") endif() message("searching apache module -->${APACHE_MSRC_NAME}<-->${APACHE_MSRC_FILENAME}<--") find_file("APACHE_MODULE_${APACHE_MSRC_NAME}" NAMES ${APACHE_MSRC_FILENAME} PATHS ${APACHE_MODULES_SEARCH_DIRS} DOC "base apache module directory" ) if(NOT APACHE_MODULE_${APACHE_MSRC_NAME}) message("apache module ${APACHE_MSRC_NAME} NOT FOUND") endif() endif() if(APACHE_MODULE_${APACHE_MSRC_NAME}) set(APACHE_LOADMODULE_STRING "${APACHE_LOADMODULE_STRING}\nLoadModule ${APACHE_MSRC_NAME} ${APACHE_MODULE_${APACHE_MSRC_NAME}}" PARENT_SCOPE) endif() endfunction()