You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by iv...@apache.org on 2022/09/07 11:43:56 UTC

svn commit: r1903912 - /apr/apr/trunk/CMakeLists.txt

Author: ivan
Date: Wed Sep  7 11:43:55 2022
New Revision: 1903912

URL: http://svn.apache.org/viewvc?rev=1903912&view=rev
Log:
* CMakeLists.txt: Add APR_BUILD_SHARED and APR_BUILD_STATIC options to control
  which configurations to build. Both are enabled by default.

Modified:
    apr/apr/trunk/CMakeLists.txt

Modified: apr/apr/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/apr/apr/trunk/CMakeLists.txt?rev=1903912&r1=1903911&r2=1903912&view=diff
==============================================================================
--- apr/apr/trunk/CMakeLists.txt (original)
+++ apr/apr/trunk/CMakeLists.txt Wed Sep  7 11:43:55 2022
@@ -73,8 +73,18 @@ OPTION(APU_HAVE_ICONV       "Xlate suppo
 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)
-
-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_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()
+
+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 ..........
 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)")