From eb759d57917b362943c5561d28cac2e60235bea1 Mon Sep 17 00:00:00 2001 From: Ivan Zhakov Date: Mon, 2 Sep 2024 11:36:23 +0000 Subject: [PATCH] CMake: Add APU_BUILD_SHARED and APU_BUILD_STATIC to enable/disable shared/static builds. git-svn-id: https://svn.apache.org/repos/asf/apr/apr-util/branches/1.7.x@1920390 13f79535-47bb-0310-9956-ffa450edef68 --- CMakeLists.txt | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c2981c12..d3fe8e4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,8 @@ ELSE() OPTION(APU_USE_LIBXML2 "Use LibXml2" ON) ENDIF() +OPTION(APU_BUILD_SHARED "Build shared libraries" ON) +OPTION(APU_BUILD_STATIC "Build static libraries" ON) OPTION(APU_HAVE_CRYPTO "Crypto support" OFF) OPTION(APU_HAVE_ODBC "Build ODBC DBD driver" ON) OPTION(APR_HAS_LDAP "LDAP support" ON) @@ -59,6 +61,14 @@ FOREACH(onelib ${APR_LIBRARIES}) ENDIF() ENDFOREACH() +IF(NOT APU_BUILD_SHARED AND NOT APU_BUILD_STATIC) + MESSAGE(FATAL_ERROR "Both APU_BUILD_SHARED and APU_BUILD_STATIC have been disabled") +ENDIF() + +IF(NOT APU_BUILD_STATIC AND TEST_STATIC_LIBS) + MESSAGE(FATAL_ERROR "APU_BUILD_STATIC have been disabled, but TEST_STATIC_LIBS is enabled") +ENDIF() + IF(NOT APU_USE_EXPAT AND NOT APU_USE_LIBXML2) MESSAGE(FATAL_ERROR "Either Expat or LibXml2 must be selected") ENDIF() @@ -267,16 +277,20 @@ IF (MSVC) ENDIF() # libaprutil-1 is shared, aprutil-1 is static -ADD_LIBRARY(libaprutil-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libaprutil.rc) -SET(install_targets ${install_targets} libaprutil-1) -SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb) -TARGET_LINK_LIBRARIES(libaprutil-1 ${XMLLIB_LIBRARIES} ${APR_LIBRARIES}) -SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_IMPORT;XML_STATIC;WINNT") +IF(APU_BUILD_SHARED) + ADD_LIBRARY(libaprutil-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libaprutil.rc) + SET(install_targets ${install_targets} libaprutil-1) + SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb) + TARGET_LINK_LIBRARIES(libaprutil-1 ${XMLLIB_LIBRARIES} ${APR_LIBRARIES}) + SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_IMPORT;XML_STATIC;WINNT") +ENDIF() -ADD_LIBRARY(aprutil-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED}) -SET(install_targets ${install_targets} aprutil-1) -TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) -SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC") +IF(APU_BUILD_STATIC) + ADD_LIBRARY(aprutil-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED}) + SET(install_targets ${install_targets} aprutil-1) + TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) + SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC") +ENDIF() IF(APU_HAVE_CRYPTO) IF(NOT OPENSSL_FOUND) @@ -402,6 +416,8 @@ MESSAGE(STATUS "") MESSAGE(STATUS "APR-Util configuration summary:") MESSAGE(STATUS "") MESSAGE(STATUS " Build type ...................... : ${CMAKE_BUILD_TYPE}") +MESSAGE(STATUS " Build shared libs ............... : ${APU_BUILD_SHARED}") +MESSAGE(STATUS " Build static libs ............... : ${APU_BUILD_STATIC}") MESSAGE(STATUS " Install .pdb (if available)...... : ${INSTALL_PDB}") MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}") MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}")