summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorIvan Zhakov <ivan@apache.org>2022-09-07 11:43:55 +0000
committerIvan Zhakov <ivan@apache.org>2022-09-07 11:43:55 +0000
commit462ff702bfc2241df98cd564db01df68aa342d5a (patch)
treedfdbabd180cb0c440e94c4d5dfa71e2c6893f6f2 /CMakeLists.txt
parentab59882d46f992fe13e696e0275a244123d51349 (diff)
downloadapr-462ff702bfc2241df98cd564db01df68aa342d5a.tar.gz
* CMakeLists.txt: Add APR_BUILD_SHARED and APR_BUILD_STATIC options to control
which configurations to build. Both are enabled by default. git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1903912 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt58
1 files changed, 39 insertions, 19 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3aec5b561..1d5719ff4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,8 +73,18 @@ 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(APR_BUILD_SHARED "Build shared libraries" ON)
+OPTION(APR_BUILD_STATIC "Build static libraries." ON)
OPTION(TEST_STATIC_LIBS "Test programs use APR static libraries instead of shared libraries?" OFF)
+IF(NOT APR_BUILD_SHARED AND NOT APR_BUILD_STATIC)
+ MESSAGE(FATAL_ERROR "Both APR_BUILD_SHARED and APR_BUILD_STATIC have been disabled")
+ENDIF()
+
+IF(NOT APR_BUILD_STATIC AND TEST_STATIC_LIBS)
+ MESSAGE(FATAL_ERROR "APR_BUILD_STATIC have been disabled, but TEST_STATIC_LIBS is enabled")
+ENDIF()
+
IF(NOT APU_USE_EXPAT AND NOT APU_USE_LIBXML2 AND NOT APU_USE_XMLLITE)
MESSAGE(FATAL_ERROR "Either Expat or LibXml2 or XmlLite must be selected")
ENDIF()
@@ -491,28 +501,36 @@ IF (MSVC)
ENDIF()
# libapr-2 is shared, apr-2 is static
-ADD_LIBRARY(${apr_libname} SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libapr.rc)
-LIST(APPEND install_targets ${apr_libname})
-LIST(APPEND install_bin_pdb ${PROJECT_BINARY_DIR}/${apr_libname}.pdb)
-TARGET_LINK_LIBRARIES(${apr_libname} ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS})
-SET_TARGET_PROPERTIES(${apr_libname} PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_EXPORT;APR_HAVE_MODULAR_DSO=1")
-ADD_DEPENDENCIES(${apr_libname} test_char_header)
-
-ADD_LIBRARY(${apr_name} STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
-LIST(APPEND install_targets ${apr_name})
-# no .pdb file generated for static libraries
-TARGET_LINK_LIBRARIES(${apr_name} ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS})
-SET_TARGET_PROPERTIES(${apr_name} PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_HAVE_MODULAR_DSO=1")
-ADD_DEPENDENCIES(${apr_name} test_char_header)
+IF (APR_BUILD_SHARED)
+ ADD_LIBRARY(${apr_libname} SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libapr.rc)
+ LIST(APPEND install_targets ${apr_libname})
+ LIST(APPEND install_bin_pdb ${PROJECT_BINARY_DIR}/${apr_libname}.pdb)
+ TARGET_LINK_LIBRARIES(${apr_libname} ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS})
+ SET_TARGET_PROPERTIES(${apr_libname} PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_EXPORT;APR_HAVE_MODULAR_DSO=1")
+ ADD_DEPENDENCIES(${apr_libname} test_char_header)
+ENDIF()
+
+IF (APR_BUILD_STATIC)
+ ADD_LIBRARY(${apr_name} STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
+ LIST(APPEND install_targets ${apr_name})
+ # no .pdb file generated for static libraries
+ TARGET_LINK_LIBRARIES(${apr_name} ${XMLLIB_LIBRARIES} ${XLATE_LIBRARIES} ${APR_SYSTEM_LIBS})
+ SET_TARGET_PROPERTIES(${apr_name} PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_HAVE_MODULAR_DSO=1")
+ ADD_DEPENDENCIES(${apr_name} test_char_header)
+ENDIF()
# libaprapp-2 and aprapp-2 are static
-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)
+IF (APR_BUILD_SHARED)
+ 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)
+ENDIF()
-ADD_LIBRARY(aprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
-LIST(APPEND install_targets aprapp-2)
-SET_TARGET_PROPERTIES(aprapp-2 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_APP")
+IF (APR_BUILD_STATIC)
+ ADD_LIBRARY(aprapp-2 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED})
+ LIST(APPEND install_targets aprapp-2)
+ SET_TARGET_PROPERTIES(aprapp-2 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_APP")
+ENDIF()
IF(APU_HAVE_CRYPTO)
IF(NOT OPENSSL_FOUND)
@@ -730,6 +748,8 @@ MESSAGE(STATUS " Use XmlLite ..................... : ${APU_USE_XMLLITE}")
MESSAGE(STATUS " Have Crypto ..................... : ${APU_HAVE_CRYPTO}")
MESSAGE(STATUS " Have Iconv ...................... : ${APU_HAVE_ICONV}")
MESSAGE(STATUS " Library files for XML ........... : ${XMLLIB_LIBRARIES}")
+MESSAGE(STATUS " Build shared libs ............... : ${APR_BUILD_SHARED}")
+MESSAGE(STATUS " Build static libs ............... : ${APR_BUILD_STATIC}")
MESSAGE(STATUS " Build test suite ................ : ${APR_BUILD_TESTAPR}")
IF(TEST_STATIC_LIBS)
MESSAGE(STATUS " (testing static libraries)")