svn commit: r1920674 - /apr/apr-util/branches/1.7.x/CMakeLists.txt

[email protected]
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.