aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt540
1 files changed, 270 insertions, 270 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 625efcf2f..49c71fa89 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,146 +17,146 @@
# CMAKE_MINIMUM_REQUIRED should be the first directive in the file:
# https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html
-CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
+cmake_minimum_required(VERSION 3.5)
-PROJECT(APR C)
+project(APR C)
-INCLUDE(CMakeDependentOption)
+include(CMakeDependentOption)
# Enable support for MSVC runtime library selection by abstraction
# if supported by CMake.
-IF(POLICY CMP0091)
- CMAKE_POLICY(SET CMP0091 NEW)
-ENDIF()
+if(POLICY CMP0091)
+ cmake_policy(SET CMP0091 NEW)
+endif()
# Add simple support CMAKE_WARNING_AS_ERROR if CMake doesn't
# support it.
-IF (CMAKE_VERSION VERSION_LESS 3.24)
- IF(CMAKE_WARNING_AS_ERROR AND MSVC)
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
- ENDIF()
-ENDIF()
-
-OPTION(APR_MINIMAL_BUILD "Create minimal APR build" OFF)
-IF(NOT APR_MINIMAL_BUILD)
- OPTION(APU_HAVE_ODBC "Build ODBC DBD driver" ON)
-ELSE()
- OPTION(APU_HAVE_ODBC "Build ODBC DBD driver" OFF)
-ENDIF()
-
-SET(apr_libname libapr-2)
-
-SET(APR_XML_BACKEND "xmllite" CACHE STRING "XML library to use (expat|libxml|xmllite)")
-SET_PROPERTY(CACHE APR_XML_BACKEND PROPERTY STRINGS expat libxml2 xmllite)
-
-OPTION(APR_INSTALL_PRIVATE_H "Install selected private .h files (for httpd)" OFF)
-OPTION(APU_HAVE_SQLITE3 "Build SQLite3 DBD driver" OFF)
-OPTION(APU_HAVE_PGSQL "Build PostgreSQL DBD driver" OFF)
-OPTION(APU_HAVE_CRYPTO "Crypto support" OFF)
-OPTION(APU_HAVE_ICONV "Xlate support" OFF)
-OPTION(APR_HAVE_IPV6 "IPv6 support" ON)
-OPTION(INSTALL_PDB "Install .pdb files (if generated)" ON)
-OPTION(APR_BUILD_TESTAPR "Build the test suite" ON)
-OPTION(BUILD_SHARED_LIBS "Build using shared libraries" ON)
-CMAKE_DEPENDENT_OPTION(APR_MODULAR_DSO "Use DSO build of modular components" ON "BUILD_SHARED_LIBS" OFF)
-OPTION(APR_POOL_DEBUG "Turn on pools debugging" OFF)
-
-SET(APR_INSTALL_BIN_DIR "bin" CACHE STRING "Install subdirectory for binary files")
-SET(APR_INSTALL_LIB_DIR "lib" CACHE STRING "Install subdirectory for library files")
-SET(APR_INSTALL_INCLUDE_DIR "include/apr-2" CACHE STRING "Install subdirectory for include files")
-
-IF(APU_USE_EXPAT)
- MESSAGE(FATAL_ERROR "APU_USE_EXPAT option is not supported. Use APR_XML_BACKEND.")
-ENDIF()
-
-IF(APU_USE_LIBXML2)
- MESSAGE(FATAL_ERROR "APU_USE_LIBXML2 option is not supported. Use APR_XML_BACKEND.")
-ENDIF()
-
-IF(APU_USE_XMLLITE)
- MESSAGE(FATAL_ERROR "APU_USE_XMLLITE option is not supported. Use APR_XML_BACKEND.")
-ENDIF()
-
-IF(APR_MODULAR_DSO AND NOT BUILD_SHARED_LIBS)
- MESSAGE(FATAL_ERROR "APR_MODULAR_DSO requires shared libraries build option enabled.")
-ENDIF()
-
-IF(APU_HAVE_CRYPTO)
- FIND_PACKAGE(OpenSSL REQUIRED)
-ENDIF()
-
-IF (APR_XML_BACKEND STREQUAL "expat")
- FIND_PACKAGE(expat CONFIG REQUIRED)
- SET(XMLLIB_LIBRARIES expat::expat)
- SET(APU_USE_EXPAT ON)
-ELSEIF (APR_XML_BACKEND STREQUAL "libxml2")
- FIND_PACKAGE(LibXml2 REQUIRED)
- SET(XMLLIB_LIBRARIES LibXml2::LibXml2)
- SET(APU_USE_LIBXML2 ON)
-ELSEIF (APR_XML_BACKEND STREQUAL "xmllite")
- SET(XMLLIB_LIBRARIES "xmllite.lib")
- SET(APU_USE_XMLLITE ON)
-ELSE()
- MESSAGE(FATAL_ERROR "Unsupported APR_XML_BACKEND value (${APR_XML_BACKEND}).")
-ENDIF()
-
-IF(APU_HAVE_ICONV)
- FIND_PACKAGE(Iconv REQUIRED)
-ENDIF()
-
-IF(APU_HAVE_SQLITE3)
- FIND_PACKAGE(SQLite3 REQUIRED)
-ENDIF()
-
-IF(APU_HAVE_PGSQL)
- FIND_PACKAGE(PostgreSQL REQUIRED)
-ENDIF()
-
-IF(APR_POOL_DEBUG)
- ADD_COMPILE_DEFINITIONS(APR_POOL_DEBUG=1)
-ENDIF()
-
-IF(APR_MODULAR_DSO)
- ADD_COMPILE_DEFINITIONS(APR_HAVE_MODULAR_DSO=1)
-ELSE()
- ADD_COMPILE_DEFINITIONS(APR_HAVE_MODULAR_DSO=0)
-ENDIF()
+if(CMAKE_VERSION VERSION_LESS 3.24)
+ if(CMAKE_WARNING_AS_ERROR AND MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
+ endif()
+endif()
+
+option(APR_MINIMAL_BUILD "Create minimal APR build" OFF)
+if(NOT APR_MINIMAL_BUILD)
+ option(APU_HAVE_ODBC "Build ODBC DBD driver" ON)
+else()
+ option(APU_HAVE_ODBC "Build ODBC DBD driver" OFF)
+endif()
+
+set(apr_libname libapr-2)
+
+set(APR_XML_BACKEND "xmllite" CACHE STRING "XML library to use (expat|libxml|xmllite)")
+set_property(CACHE APR_XML_BACKEND PROPERTY STRINGS expat libxml2 xmllite)
+
+option(APR_INSTALL_PRIVATE_H "Install selected private .h files (for httpd)" OFF)
+option(APU_HAVE_SQLITE3 "Build SQLite3 DBD driver" OFF)
+option(APU_HAVE_PGSQL "Build PostgreSQL DBD driver" OFF)
+option(APU_HAVE_CRYPTO "Crypto support" OFF)
+option(APU_HAVE_ICONV "Xlate support" OFF)
+option(APR_HAVE_IPV6 "IPv6 support" ON)
+option(INSTALL_PDB "Install .pdb files (if generated)" ON)
+option(APR_BUILD_TESTAPR "Build the test suite" ON)
+option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
+cmake_dependent_option(APR_MODULAR_DSO "Use DSO build of modular components" ON "BUILD_SHARED_LIBS" OFF)
+option(APR_POOL_DEBUG "Turn on pools debugging" OFF)
+
+set(APR_INSTALL_BIN_DIR "bin" CACHE STRING "Install subdirectory for binary files")
+set(APR_INSTALL_LIB_DIR "lib" CACHE STRING "Install subdirectory for library files")
+set(APR_INSTALL_INCLUDE_DIR "include/apr-2" CACHE STRING "Install subdirectory for include files")
+
+if(APU_USE_EXPAT)
+ message(FATAL_ERROR "APU_USE_EXPAT option is not supported. Use APR_XML_BACKEND.")
+endif()
+
+if(APU_USE_LIBXML2)
+ message(FATAL_ERROR "APU_USE_LIBXML2 option is not supported. Use APR_XML_BACKEND.")
+endif()
+
+if(APU_USE_XMLLITE)
+ message(FATAL_ERROR "APU_USE_XMLLITE option is not supported. Use APR_XML_BACKEND.")
+endif()
+
+if(APR_MODULAR_DSO AND NOT BUILD_SHARED_LIBS)
+ message(FATAL_ERROR "APR_MODULAR_DSO requires shared libraries build option enabled.")
+endif()
+
+if(APU_HAVE_CRYPTO)
+ find_package(OpenSSL REQUIRED)
+endif()
+
+if(APR_XML_BACKEND STREQUAL "expat")
+ find_package(expat CONFIG REQUIRED)
+ set(XMLLIB_LIBRARIES expat::expat)
+ set(APU_USE_EXPAT ON)
+elseif(APR_XML_BACKEND STREQUAL "libxml2")
+ find_package(LibXml2 REQUIRED)
+ set(XMLLIB_LIBRARIES LibXml2::LibXml2)
+ set(APU_USE_LIBXML2 ON)
+elseif(APR_XML_BACKEND STREQUAL "xmllite")
+ set(XMLLIB_LIBRARIES "xmllite.lib")
+ set(APU_USE_XMLLITE ON)
+else()
+ message(FATAL_ERROR "Unsupported APR_XML_BACKEND value (${APR_XML_BACKEND}).")
+endif()
+
+if(APU_HAVE_ICONV)
+ find_package(Iconv REQUIRED)
+endif()
+
+if(APU_HAVE_SQLITE3)
+ find_package(SQLite3 REQUIRED)
+endif()
+
+if(APU_HAVE_PGSQL)
+ find_package(PostgreSQL REQUIRED)
+endif()
+
+if(APR_POOL_DEBUG)
+ add_compile_definitions(APR_POOL_DEBUG=1)
+endif()
+
+if(APR_MODULAR_DSO)
+ add_compile_definitions(APR_HAVE_MODULAR_DSO=1)
+else()
+ add_compile_definitions(APR_HAVE_MODULAR_DSO=0)
+endif()
# Read current version.
-FILE(STRINGS include/apr_version.h VERSION_STRINGS REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)")
+file(STRINGS include/apr_version.h VERSION_STRINGS REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)")
-STRING(REGEX REPLACE ".*#define APR_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" APR_MAJOR_VERSION ${VERSION_STRINGS})
-STRING(REGEX REPLACE ".*#define APR_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" APR_MINOR_VERSION ${VERSION_STRINGS})
-STRING(REGEX REPLACE ".*#define APR_PATCH_VERSION[ \t]+([0-9]+).*" "\\1" APR_PATCH_VERSION ${VERSION_STRINGS})
+string(REGEX REPLACE ".*#define APR_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" APR_MAJOR_VERSION ${VERSION_STRINGS})
+string(REGEX REPLACE ".*#define APR_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" APR_MINOR_VERSION ${VERSION_STRINGS})
+string(REGEX REPLACE ".*#define APR_PATCH_VERSION[ \t]+([0-9]+).*" "\\1" APR_PATCH_VERSION ${VERSION_STRINGS})
-CONFIGURE_FILE(include/apr.hwc
+configure_file(include/apr.hwc
${PROJECT_BINARY_DIR}/apr.h)
# "COPYONLY" just because anything else isn't implemented ;)
-CONFIGURE_FILE(include/private/apu_select_dbm.hw
+configure_file(include/private/apu_select_dbm.hw
${PROJECT_BINARY_DIR}/apu_select_dbm.h
COPYONLY)
-CONFIGURE_FILE(include/apu_want.hw
+configure_file(include/apu_want.hw
${PROJECT_BINARY_DIR}/apu_want.h
COPYONLY)
-ADD_EXECUTABLE(gen_test_char tools/gen_test_char.c)
+add_executable(gen_test_char tools/gen_test_char.c)
-ADD_CUSTOM_COMMAND(
+add_custom_command(
COMMENT "Generating character tables, apr_escape_test_char.h, for current locale"
DEPENDS gen_test_char
COMMAND $<TARGET_FILE:gen_test_char> > ${PROJECT_BINARY_DIR}/apr_escape_test_char.h
OUTPUT ${PROJECT_BINARY_DIR}/apr_escape_test_char.h
)
-ADD_CUSTOM_TARGET(
+add_custom_target(
test_char_header ALL
DEPENDS ${PROJECT_BINARY_DIR}/apr_escape_test_char.h
)
-IF(APU_HAVE_ICONV)
- SET(XLATE_LIBRARIES Iconv::Iconv)
-ELSE()
- SET(XLATE_LIBRARIES "")
-ENDIF()
+if(APU_HAVE_ICONV)
+ set(XLATE_LIBRARIES Iconv::Iconv)
+else()
+ set(XLATE_LIBRARIES "")
+endif()
# Generated .h files are stored in PROJECT_BINARY_DIR, not the
# source tree.
#
@@ -164,7 +164,7 @@ ENDIF()
# manually delete apr.h in PROJECT_SOURCE_DIR/include if
# you've generated apr.h before using a different build
-SET(APR_INCLUDE_DIRECTORIES
+set(APR_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/arch/win32>
@@ -172,13 +172,13 @@ SET(APR_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/private>
)
-SET(APR_SYSTEM_LIBS
+set(APR_SYSTEM_LIBS
ws2_32
rpcrt4
bcrypt
)
-SET(APR_PUBLIC_HEADERS_STATIC
+set(APR_PUBLIC_HEADERS_STATIC
include/apr_allocator.h
include/apr_anylock.h
include/apr_atomic.h
@@ -252,12 +252,12 @@ SET(APR_PUBLIC_HEADERS_STATIC
include/apu_errno.h
include/apu_version.h
)
-SET(APR_PUBLIC_HEADERS_GENERATED
+set(APR_PUBLIC_HEADERS_GENERATED
${PROJECT_BINARY_DIR}/apr.h
${PROJECT_BINARY_DIR}/apu_want.h
)
-SET(APR_SOURCES
+set(APR_SOURCES
atomic/win32/apr_atomic.c
atomic/win32/apr_atomic64.c
buckets/apr_brigade.c
@@ -393,10 +393,10 @@ SET(APR_SOURCES
)
# Sources and libraries for APR builtin drivers. Used when APR_MODULAR_DSO=OFF.
-SET(APR_EXTRA_SOURCES)
-SET(APR_EXTRA_LIBRARIES)
+set(APR_EXTRA_SOURCES)
+set(APR_EXTRA_LIBRARIES)
-SET(APR_TEST_SUITES
+set(APR_TEST_SUITES
testargs
testatomic
testbase64
@@ -470,155 +470,155 @@ SET(APR_TEST_SUITES
testxml
)
-SET(install_targets)
-SET(install_modules)
-SET(install_bin_pdb)
-SET(dbd_drivers)
+set(install_targets)
+set(install_modules)
+set(install_bin_pdb)
+set(dbd_drivers)
-IF (MSVC)
+if (MSVC)
# Ignore Microsoft's interpretation of secure development
# and the POSIX string handling API
- ADD_COMPILE_DEFINITIONS(_CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_WARNINGS)
-ENDIF()
+ add_compile_definitions(_CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_WARNINGS)
+endif()
-MACRO(ADD_APR_MODULE name dllname sources libraries)
- IF(APR_MODULAR_DSO)
- ADD_LIBRARY(${name} SHARED ${sources})
- LIST(APPEND install_modules ${name})
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:${name}>)
+macro(ADD_APR_MODULE name dllname sources libraries)
+ if(APR_MODULAR_DSO)
+ add_library(${name} SHARED ${sources})
+ list(APPEND install_modules ${name})
+ list(APPEND install_bin_pdb $<TARGET_PDB_FILE:${name}>)
- TARGET_SOURCES(${name} PRIVATE libapr.rc)
- TARGET_COMPILE_DEFINITIONS(${name}
+ target_sources(${name} PRIVATE libapr.rc)
+ target_compile_definitions(${name}
PRIVATE DLL_NAME=${dllname})
- TARGET_LINK_LIBRARIES(${name}
+ target_link_libraries(${name}
PRIVATE ${apr_libname} ${APR_SYSTEM_LIBS})
- TARGET_LINK_LIBRARIES(${name}
+ target_link_libraries(${name}
PRIVATE ${libraries})
- ELSE()
- LIST(APPEND APR_EXTRA_SOURCES ${sources})
- LIST(APPEND APR_EXTRA_LIBRARIES ${libraries})
- ENDIF()
-ENDMACRO()
+ else()
+ list(APPEND APR_EXTRA_SOURCES ${sources})
+ list(APPEND APR_EXTRA_LIBRARIES ${libraries})
+ endif()
+endmacro()
-IF(APU_HAVE_CRYPTO)
- IF(NOT OPENSSL_FOUND)
- MESSAGE(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build")
- ENDIF()
+if(APU_HAVE_CRYPTO)
+ if(NOT OPENSSL_FOUND)
+ message(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build")
+ endif()
ADD_APR_MODULE(
apr_crypto_openssl-2 "apr_crypto_openssl"
"crypto/apr_crypto_openssl.c"
"OpenSSL::Crypto")
-ENDIF()
+endif()
-IF(APU_HAVE_ODBC)
- LIST(APPEND dbd_drivers odbc)
+if(APU_HAVE_ODBC)
+ list(APPEND dbd_drivers odbc)
ADD_APR_MODULE(
apr_dbd_odbc-2 "apr_dbd_odbc"
"dbd/apr_dbd_odbc.c"
"odbc32;odbccp32"
)
-ENDIF()
+endif()
-IF(APU_HAVE_SQLITE3)
- LIST(APPEND dbd_drivers sqlite3)
+if(APU_HAVE_SQLITE3)
+ list(APPEND dbd_drivers sqlite3)
ADD_APR_MODULE(
apr_dbd_sqlite3-2 "apr_dbd_sqlite3-1"
"dbd/apr_dbd_sqlite3.c"
"SQLite::SQLite3"
)
-ENDIF()
+endif()
-IF(APU_HAVE_PGSQL)
- LIST(APPEND dbd_drivers pgsql)
+if(APU_HAVE_PGSQL)
+ list(APPEND dbd_drivers pgsql)
ADD_APR_MODULE(apr_dbd_pgsql-2 "apr_dbd_pgsql"
"dbd/apr_dbd_pgsql.c"
"PostgreSQL::PostgreSQL")
- ADD_COMPILE_DEFINITIONS(HAVE_LIBPQ_FE_H)
-ENDIF()
+ add_compile_definitions(HAVE_LIBPQ_FE_H)
+endif()
-IF (BUILD_SHARED_LIBS)
- ADD_LIBRARY(${apr_libname} SHARED ${APR_SOURCES} ${APR_EXTRA_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libapr.rc)
- LIST(APPEND install_targets ${apr_libname})
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:${apr_libname}>)
- TARGET_LINK_LIBRARIES(${apr_libname}
+if (BUILD_SHARED_LIBS)
+ add_library(${apr_libname} SHARED ${APR_SOURCES} ${APR_EXTRA_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libapr.rc)
+ list(APPEND install_targets ${apr_libname})
+ list(APPEND install_bin_pdb $<TARGET_PDB_FILE:${apr_libname}>)
+ target_link_libraries(${apr_libname}
PRIVATE ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS} ${APR_EXTRA_LIBRARIES})
- TARGET_COMPILE_DEFINITIONS(${apr_libname}
+ target_compile_definitions(${apr_libname}
PRIVATE "APR_DECLARE_EXPORT"
INTERFACE "APR_DECLARE_IMPORT")
- TARGET_INCLUDE_DIRECTORIES(${apr_libname}
+ target_include_directories(${apr_libname}
PRIVATE ${APR_INCLUDE_DIRECTORIES}
INTERFACE $<INSTALL_INTERFACE:${APR_INSTALL_INCLUDE_DIR}> ${APR_INCLUDE_DIRECTORIES}
)
- ADD_DEPENDENCIES(${apr_libname} test_char_header)
-ELSE()
- ADD_LIBRARY(${apr_libname} STATIC ${APR_SOURCES} ${APR_EXTRA_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
- LIST(APPEND install_targets ${apr_libname})
+ add_dependencies(${apr_libname} test_char_header)
+else()
+ add_library(${apr_libname} STATIC ${APR_SOURCES} ${APR_EXTRA_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
+ list(APPEND install_targets ${apr_libname})
# no .pdb file generated for static libraries
- TARGET_LINK_LIBRARIES(${apr_libname}
+ target_link_libraries(${apr_libname}
PRIVATE ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS} ${APR_EXTRA_LIBRARIES})
- TARGET_COMPILE_DEFINITIONS(${apr_libname}
+ target_compile_definitions(${apr_libname}
PRIVATE "APR_DECLARE_STATIC"
INTERFACE "APR_DECLARE_STATIC")
- TARGET_INCLUDE_DIRECTORIES(${apr_libname}
+ target_include_directories(${apr_libname}
PRIVATE ${APR_INCLUDE_DIRECTORIES}
INTERFACE $<INSTALL_INTERFACE:${APR_INSTALL_INCLUDE_DIR}> ${APR_INCLUDE_DIRECTORIES}
)
- ADD_DEPENDENCIES(${apr_libname} test_char_header)
-ENDIF()
-
-IF (BUILD_SHARED_LIBS)
- ADD_LIBRARY(libaprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
- LIST(APPEND install_targets libaprapp-2)
- SET_TARGET_PROPERTIES(libaprapp-2 PROPERTIES COMPILE_DEFINITIONS APR_APP)
- TARGET_INCLUDE_DIRECTORIES(libaprapp-2
+ add_dependencies(${apr_libname} test_char_header)
+endif()
+
+if (BUILD_SHARED_LIBS)
+ add_library(libaprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
+ list(APPEND install_targets libaprapp-2)
+ set_target_properties(libaprapp-2 PROPERTIES COMPILE_DEFINITIONS APR_APP)
+ target_include_directories(libaprapp-2
PRIVATE ${APR_INCLUDE_DIRECTORIES}
)
-ELSE()
- ADD_LIBRARY(libaprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
- LIST(APPEND install_targets libaprapp-2)
- SET_TARGET_PROPERTIES(libaprapp-2 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_APP")
- TARGET_INCLUDE_DIRECTORIES(libaprapp-2
+else()
+ add_library(libaprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
+ list(APPEND install_targets libaprapp-2)
+ set_target_properties(libaprapp-2 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_APP")
+ target_include_directories(libaprapp-2
PRIVATE ${APR_INCLUDE_DIRECTORIES}
)
-ENDIF()
+endif()
-IF(APR_BUILD_TESTAPR)
- ENABLE_TESTING()
+if(APR_BUILD_TESTAPR)
+ enable_testing()
# Create a "check" target that displays test program output to the console.
- ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
+ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
# copy data files to build directory so that we can run programs from there
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory
+ execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
${PROJECT_BINARY_DIR}/data)
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/test/data/billion-laughs.xml
${PROJECT_BINARY_DIR}/data/billion-laughs.xml)
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/test/data/file_datafile.txt
${PROJECT_BINARY_DIR}/data/file_datafile.txt)
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/test/data/mmap_datafile.txt
${PROJECT_BINARY_DIR}/data/mmap_datafile.txt)
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/test/data/mmap_large_datafile.txt
${PROJECT_BINARY_DIR}/data/mmap_large_datafile.txt)
- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/test/echoargs.bat
${PROJECT_BINARY_DIR}/echoargs.bat)
- ADD_EXECUTABLE(testapp test/testapp.c)
- TARGET_LINK_LIBRARIES(testapp ${apr_libname} libaprapp-2)
- SET_TARGET_PROPERTIES(testapp PROPERTIES LINK_FLAGS /entry:wmainCRTStartup)
- ADD_TEST(NAME testapp COMMAND testapp)
+ add_executable(testapp test/testapp.c)
+ target_link_libraries(testapp ${apr_libname} libaprapp-2)
+ set_target_properties(testapp PROPERTIES LINK_FLAGS /entry:wmainCRTStartup)
+ add_test(NAME testapp COMMAND testapp)
- SET (APR_TEST_SOURCES
+ set (APR_TEST_SOURCES
test/abts.c
test/testlfsabi32.c
test/testlfsabi64.c
@@ -626,30 +626,30 @@ IF(APR_BUILD_TESTAPR)
test/testutil.c
)
- FOREACH(testsuite ${APR_TEST_SUITES})
- LIST(APPEND APR_TEST_SOURCES test/${testsuite}.c)
- ENDFOREACH()
+ foreach(testsuite ${APR_TEST_SUITES})
+ list(APPEND APR_TEST_SOURCES test/${testsuite}.c)
+ endforeach()
- ADD_EXECUTABLE(testall ${APR_TEST_SOURCES})
- TARGET_LINK_LIBRARIES(testall ${apr_libname} ws2_32.lib)
- SET_TARGET_PROPERTIES(testall PROPERTIES COMPILE_DEFINITIONS "BINPATH=$<TARGET_FILE_DIR:testall>")
+ add_executable(testall ${APR_TEST_SOURCES})
+ target_link_libraries(testall ${apr_libname} ws2_32.lib)
+ set_target_properties(testall PROPERTIES COMPILE_DEFINITIONS "BINPATH=$<TARGET_FILE_DIR:testall>")
- FOREACH(test ${APR_TEST_SUITES})
- ADD_TEST(NAME ${test} COMMAND testall -v ${test})
- ENDFOREACH()
+ foreach(test ${APR_TEST_SUITES})
+ add_test(NAME ${test} COMMAND testall -v ${test})
+ endforeach()
- ADD_LIBRARY(mod_test MODULE test/mod_test.c)
- TARGET_LINK_LIBRARIES(mod_test ${apr_libname})
- SET_PROPERTY(TARGET mod_test APPEND PROPERTY LINK_FLAGS /export:print_hello)
+ add_library(mod_test MODULE test/mod_test.c)
+ target_link_libraries(mod_test ${apr_libname})
+ set_property(TARGET mod_test APPEND PROPERTY LINK_FLAGS /export:print_hello)
# nasty work-around for difficulties adding more than one additional flag
# (they get joined in a bad way behind the scenes)
- GET_PROPERTY(link_flags TARGET mod_test PROPERTY LINK_FLAGS)
- SET(link_flags "${link_flags} /export:count_reps")
- SET_TARGET_PROPERTIES(mod_test PROPERTIES LINK_FLAGS ${link_flags})
+ get_property(link_flags TARGET mod_test PROPERTY LINK_FLAGS)
+ set(link_flags "${link_flags} /export:count_reps")
+ set_target_properties(mod_test PROPERTIES LINK_FLAGS ${link_flags})
# Build all the single-source executable files with no special build
# requirements.
- SET(single_source_programs
+ set(single_source_programs
test/dbd.c
test/echoargs.c
test/echod.c
@@ -669,43 +669,43 @@ IF(APR_BUILD_TESTAPR)
test/internal/testutf.c
)
- FOREACH(sourcefile ${single_source_programs})
- STRING(REGEX REPLACE ".*/([^\\]+)\\.c" "\\1" proggie ${sourcefile})
- ADD_EXECUTABLE(${proggie} ${sourcefile})
- TARGET_LINK_LIBRARIES(${proggie} ${apr_libname})
- SET_TARGET_PROPERTIES(${proggie} PROPERTIES COMPILE_DEFINITIONS "BINPATH=$<TARGET_FILE_DIR:${proggie}>")
+ foreach(sourcefile ${single_source_programs})
+ string(REGEX REPLACE ".*/([^\\]+)\\.c" "\\1" proggie ${sourcefile})
+ add_executable(${proggie} ${sourcefile})
+ target_link_libraries(${proggie} ${apr_libname})
+ set_target_properties(${proggie} PROPERTIES COMPILE_DEFINITIONS "BINPATH=$<TARGET_FILE_DIR:${proggie}>")
- ADD_DEPENDENCIES(testall ${proggie})
- ENDFOREACH()
+ add_dependencies(testall ${proggie})
+ endforeach()
# Add tests for programs that run by themselves with no arguments.
- SET(simple_tests
+ set(simple_tests
testmutexscope
testutf
)
- FOREACH(simple ${simple_tests})
- ADD_TEST(NAME ${simple} COMMAND ${simple})
- ENDFOREACH()
+ foreach(simple ${simple_tests})
+ add_test(NAME ${simple} COMMAND ${simple})
+ endforeach()
# testlockperf takes forever on Windows with default counter limit
- ADD_TEST(NAME testlockperf COMMAND testlockperf -c 50000)
+ add_test(NAME testlockperf COMMAND testlockperf -c 50000)
# dbd and sendfile are run multiple times with different parameters.
- FOREACH(somedbd ${dbd_drivers})
- ADD_TEST(NAME dbd-${somedbd} COMMAND dbd ${somedbd})
- ENDFOREACH()
+ foreach(somedbd ${dbd_drivers})
+ add_test(NAME dbd-${somedbd} COMMAND dbd ${somedbd})
+ endforeach()
- FOREACH(sendfile_mode blocking nonblocking timeout)
- ADD_TEST(NAME sendfile-${sendfile_mode} COMMAND sendfile client ${sendfile_mode} startserver)
- ENDFOREACH()
+ foreach(sendfile_mode blocking nonblocking timeout)
+ add_test(NAME sendfile-${sendfile_mode} COMMAND sendfile client ${sendfile_mode} startserver)
+ endforeach()
# No test is added for echod+sockperf. Those will have to be run manually.
-ENDIF (APR_BUILD_TESTAPR)
+endif (APR_BUILD_TESTAPR)
# Installation
-INCLUDE(CMakePackageConfigHelpers)
+include(CMakePackageConfigHelpers)
string(TOLOWER "${PROJECT_NAME}" project_name_lower)
@@ -714,68 +714,68 @@ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${project_name_low
COMPATIBILITY SameMajorVersion
)
-INSTALL(TARGETS ${install_targets} EXPORT apr-config
+install(TARGETS ${install_targets} EXPORT apr-config
RUNTIME DESTINATION ${APR_INSTALL_BIN_DIR}
LIBRARY DESTINATION ${APR_INSTALL_LIB_DIR}
ARCHIVE DESTINATION ${APR_INSTALL_LIB_DIR}
)
-INSTALL(EXPORT apr-config
+install(EXPORT apr-config
NAMESPACE apr::
DESTINATION "lib/cmake/${project_name_lower}"
FILE "${project_name_lower}-config.cmake"
)
-INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${project_name_lower}-config-version.cmake"
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${project_name_lower}-config-version.cmake"
DESTINATION "lib/cmake/${project_name_lower}"
)
# For DSO modules, install only binaries
-INSTALL(TARGETS ${install_modules}
+install(TARGETS ${install_modules}
COMPONENT RUNTIME
DESTINATION ${APR_INSTALL_BIN_DIR})
-IF(INSTALL_PDB)
- INSTALL(FILES ${install_bin_pdb}
+if(INSTALL_PDB)
+ install(FILES ${install_bin_pdb}
DESTINATION ${APR_INSTALL_BIN_DIR}
CONFIGURATIONS RelWithDebInfo Debug)
-ENDIF()
+endif()
-INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION ${APR_INSTALL_INCLUDE_DIR})
-IF(APR_INSTALL_PRIVATE_H)
+install(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION ${APR_INSTALL_INCLUDE_DIR})
+if(APR_INSTALL_PRIVATE_H)
# Kludges for unexpected dependencies of httpd 2.x, not installed by default
- SET(APR_PRIVATE_H_FOR_HTTPD
+ set(APR_PRIVATE_H_FOR_HTTPD
include/arch/win32/apr_arch_file_io.h
include/arch/win32/apr_arch_misc.h
include/arch/win32/apr_arch_utf8.h
include/arch/win32/apr_private.h
)
- INSTALL(FILES ${APR_PRIVATE_H_FOR_HTTPD} DESTINATION ${APR_INSTALL_INCLUDE_DIR}/arch/win32)
-ENDIF()
+ install(FILES ${APR_PRIVATE_H_FOR_HTTPD} DESTINATION ${APR_INSTALL_INCLUDE_DIR}/arch/win32)
+endif()
STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype)
-MESSAGE(STATUS "")
-MESSAGE(STATUS "")
-MESSAGE(STATUS "APR configuration summary:")
-MESSAGE(STATUS "")
-
-MESSAGE(STATUS " Build type ...................... : ${CMAKE_BUILD_TYPE}")
-MESSAGE(STATUS " Install .pdb (if available)...... : ${INSTALL_PDB}")
-MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}")
-MESSAGE(STATUS " Directory for binary files .... : PREFIX/${APR_INSTALL_BIN_DIR}")
-MESSAGE(STATUS " Directory for library files ... : PREFIX/${APR_INSTALL_LIB_DIR}")
-MESSAGE(STATUS " Directory for include files ... : PREFIX/${APR_INSTALL_INCLUDE_DIR}")
-MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}")
-MESSAGE(STATUS " IPv6 ............................ : ${APR_HAVE_IPV6}")
-MESSAGE(STATUS " DBD ODBC driver ................. : ${APU_HAVE_ODBC}")
-MESSAGE(STATUS " DBD SQLite3 driver .............. : ${APU_HAVE_SQLITE3}")
-MESSAGE(STATUS " DBD PostgreSQL .................. : ${APU_HAVE_PGSQL}")
-MESSAGE(STATUS " XML backend ..................... : ${APR_XML_BACKEND}")
-MESSAGE(STATUS " Have Crypto ..................... : ${APU_HAVE_CRYPTO}")
-MESSAGE(STATUS " Have Iconv ...................... : ${APU_HAVE_ICONV}")
-MESSAGE(STATUS " Library files for XML ........... : ${XMLLIB_LIBRARIES}")
-MESSAGE(STATUS " DSO build of modular components.. : ${APR_MODULAR_DSO}")
-MESSAGE(STATUS " Turn on pools debugging ..........: ${APR_POOL_DEBUG}")
-MESSAGE(STATUS " Build shared libraries .......... : ${BUILD_SHARED_LIBS}")
-MESSAGE(STATUS " Build test suite ................ : ${APR_BUILD_TESTAPR}")
-MESSAGE(STATUS " Install private .h for httpd .... : ${APR_INSTALL_PRIVATE_H}")
+message(STATUS "")
+message(STATUS "")
+message(STATUS "APR configuration summary:")
+message(STATUS "")
+
+message(STATUS " Build type ...................... : ${CMAKE_BUILD_TYPE}")
+message(STATUS " Install .pdb (if available)...... : ${INSTALL_PDB}")
+message(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}")
+message(STATUS " Directory for binary files .... : PREFIX/${APR_INSTALL_BIN_DIR}")
+message(STATUS " Directory for library files ... : PREFIX/${APR_INSTALL_LIB_DIR}")
+message(STATUS " Directory for include files ... : PREFIX/${APR_INSTALL_INCLUDE_DIR}")
+message(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}")
+message(STATUS " IPv6 ............................ : ${APR_HAVE_IPV6}")
+message(STATUS " DBD ODBC driver ................. : ${APU_HAVE_ODBC}")
+message(STATUS " DBD SQLite3 driver .............. : ${APU_HAVE_SQLITE3}")
+message(STATUS " DBD PostgreSQL .................. : ${APU_HAVE_PGSQL}")
+message(STATUS " XML backend ..................... : ${APR_XML_BACKEND}")
+message(STATUS " Have Crypto ..................... : ${APU_HAVE_CRYPTO}")
+message(STATUS " Have Iconv ...................... : ${APU_HAVE_ICONV}")
+message(STATUS " Library files for XML ........... : ${XMLLIB_LIBRARIES}")
+message(STATUS " DSO build of modular components.. : ${APR_MODULAR_DSO}")
+message(STATUS " Turn on pools debugging ..........: ${APR_POOL_DEBUG}")
+message(STATUS " Build shared libraries .......... : ${BUILD_SHARED_LIBS}")
+message(STATUS " Build test suite ................ : ${APR_BUILD_TESTAPR}")
+message(STATUS " Install private .h for httpd .... : ${APR_INSTALL_PRIVATE_H}")