svn commit: r1920674 - /apr/apr-util/branches/1.7.x/CMakeLists.txt
| Newsgroups | gmane.comp.apache.apr.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ivan
Date: Sun Sep 15 11:53:53 2024
New Revision: 1920674
URL: http://svn.apache.org/viewvc?rev=1920674&view=rev
Log:
CMake: Factor-out macro ADD_APU_MODULE() to define APU dso module library.
Modified:
apr/apr-util/branches/1.7.x/CMakeLists.txt
Modified: apr/apr-util/branches/1.7.x/CMakeLists.txt
URL: http://svn.apache.org/viewvc/apr/apr-util/branches/1.7.x/CMakeLists.txt?rev=1920674&r1=1920673&r2=1920674&view=diff
==============================================================================
--- apr/apr-util/branches/1.7.x/CMakeLists.txt (original)
+++ apr/apr-util/branches/1.7.x/CMakeLists.txt Sun Sep 15 11:53:53 2024
@@ -266,27 +266,59 @@ IF (MSVC)
ADD_COMPILE_DEFINITIONS(_CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_WARNINGS)
ENDIF()
-IF(NOT APU_DSO_BUILD AND APU_HAVE_CRYPTO)
+MACRO(ADD_APU_MODULE name dllname sources libraries)
+ IF(APU_DSO_BUILD)
+ ADD_LIBRARY(${name} SHARED ${sources})
+ LIST(APPEND install_targets ${name})
+ LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:${name}>)
+
+ TARGET_SOURCES(${name} PRIVATE libaprutil.rc)
+ TARGET_COMPILE_DEFINITIONS(${name}
+ PRIVATE DLL_NAME=${dllname})
+
+ TARGET_LINK_LIBRARIES(${name}
+ PRIVATE libaprutil-1 apr::libapr-1)
+ TARGET_LINK_LIBRARIES(${name}
+ PRIVATE ${libraries})
+ ELSE()
+ LIST(APPEND APU_EXTRA_SOURCES ${sources})
+ LIST(APPEND APU_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()
- LIST(APPEND APU_EXTRA_SOURCES crypto/apr_crypto_openssl.c)
- LIST(APPEND APU_EXTRA_LIBRARIES OpenSSL::Crypto)
+ ADD_APU_MODULE(
+ apr_crypto_openssl-1 "apr_crypto_openssl"
+ "crypto/apr_crypto_openssl.c"
+ "OpenSSL::Crypto")
+ENDIF()
+
+IF(APR_HAS_LDAP)
+ ADD_APU_MODULE(
+ apr_ldap-1 "apr_ldap"
+ "ldap/apr_ldap_init.c;ldap/apr_ldap_option.c;ldap/apr_ldap_rebind.c"
+ ${LDAP_LIBRARIES}
+ )
ENDIF()
-IF(NOT APU_DSO_BUILD AND APU_HAVE_ODBC)
+IF(APU_HAVE_ODBC)
LIST(APPEND dbd_drivers odbc)
- LIST(APPEND APU_EXTRA_SOURCES dbd/apr_dbd_odbc.c)
- LIST(APPEND APU_EXTRA_LIBRARIES odbc32 odbccp32)
+ ADD_APU_MODULE(apr_dbd_odbc-1 "apr_dbd_odbc"
+ "dbd/apr_dbd_odbc.c"
+ "odbc32;odbccp32")
ENDIF()
-IF(NOT APU_DSO_BUILD AND APU_HAVE_SQLITE3)
+IF(APU_HAVE_SQLITE3)
LIST(APPEND dbd_drivers sqlite3)
- LIST(APPEND APU_EXTRA_SOURCES dbd/apr_dbd_sqlite3.c)
- LIST(APPEND APU_EXTRA_LIBRARIES SQLite::SQLite3)
+ ADD_APU_MODULE(apr_dbd_sqlite3-1 "apr_dbd_sqlite3-1"
+ "dbd/apr_dbd_sqlite3.c"
+ "SQLite::SQLite3")
ENDIF()
ADD_LIBRARY(libaprutil-1 ${APR_SOURCES} ${APU_EXTRA_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
@@ -324,55 +356,6 @@ ELSE()
INTERFACE "APU_DECLARE_STATIC")
ENDIF()
-IF(APU_DSO_BUILD AND APU_HAVE_CRYPTO)
- IF(NOT OPENSSL_FOUND)
- MESSAGE(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build")
- ENDIF()
- ADD_LIBRARY(apr_crypto_openssl-1 SHARED crypto/apr_crypto_openssl.c libaprutil.rc)
- LIST(APPEND install_targets apr_crypto_openssl-1)
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:apr_crypto_openssl-1>)
- TARGET_COMPILE_DEFINITIONS(apr_crypto_openssl-1
- PRIVATE "DLL_NAME=apr_crypto_openssl")
- TARGET_LINK_LIBRARIES(apr_crypto_openssl-1
- PRIVATE libaprutil-1 apr::libapr-1 OpenSSL::Crypto)
-ENDIF()
-
-IF(APU_DSO_BUILD AND APU_HAVE_ODBC)
- ADD_LIBRARY(apr_dbd_odbc-1 SHARED dbd/apr_dbd_odbc.c libaprutil.rc)
- LIST(APPEND install_targets apr_dbd_odbc-1)
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:apr_dbd_odbc-1>)
- LIST(APPEND dbd_drivers odbc)
- TARGET_LINK_LIBRARIES(apr_dbd_odbc-1
- PRIVATE libaprutil-1 apr::libapr-1 odbc32 odbccp32)
- TARGET_COMPILE_DEFINITIONS(apr_dbd_odbc-1
- PRIVATE "DLL_NAME=apr_dbd_odbc")
-ENDIF()
-
-IF(APU_DSO_BUILD AND APR_HAS_LDAP)
- ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c
- ldap/apr_ldap_rebind.c libaprutil.rc)
- LIST(APPEND install_targets apr_ldap-1)
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:apr_ldap-1>)
- TARGET_LINK_LIBRARIES(apr_ldap-1
- PRIVATE libaprutil-1 apr::libapr-1 ${LDAP_LIBRARIES})
- TARGET_COMPILE_DEFINITIONS(apr_ldap-1
- PRIVATE "DLL_NAME=apr_ldap")
- SET(apr_ldap_libraries apr_ldap-1)
-ELSE()
- SET(apr_ldap_libraries)
-ENDIF()
-
-IF(APU_DSO_BUILD AND APU_HAVE_SQLITE3)
- ADD_LIBRARY(apr_dbd_sqlite3-1 SHARED dbd/apr_dbd_sqlite3.c libaprutil.rc)
- LIST(APPEND install_targets apr_dbd_sqlite3-1)
- LIST(APPEND install_bin_pdb $<TARGET_PDB_FILE:apr_dbd_sqlite3-1>)
- LIST(APPEND dbd_drivers sqlite3)
- TARGET_LINK_LIBRARIES(apr_dbd_sqlite3-1
- PRIVATE libaprutil-1 apr::libapr-1 SQLite::SQLite3)
- TARGET_COMPILE_DEFINITIONS(apr_dbd_sqlite3-1
- PRIVATE "DLL_NAME=apr_dbd_sqlite3-1")
-ENDIF()
-
IF(APU_BUILD_TEST)
ENABLE_TESTING()
# Create a "check" target that displays test program output to the console.