Skip to content

Commit

Permalink
CMake: Add APU_BUILD_SHARED and APU_BUILD_STATIC to enable/disable sh…
Browse files Browse the repository at this point in the history
…ared/static

builds.

git-svn-id: https://svn.apache.org/repos/asf/apr/apr-util/branches/1.7.x@1920390 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
Ivan Zhakov committed Sep 2, 2024
1 parent dd7e00b commit eb759d5
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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()
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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}")
Expand Down

0 comments on commit eb759d5

Please sign in to comment.