Author: rinrab
Date: Tue Jun 10 22:00:42 2025
New Revision: 1926349
URL: http://svn.apache.org/viewvc?rev=1926349&view=rev
Log:
cmake: Support apr-2.
* build/cmake/FindAPR.cmake
(APR_INCLUDE_DIR): Also check apr-2 directory.
(version): Read it just after include dir and default it to 1.0.0 version
file not found.
(APR_LIBRARY_SHARED, APR_LIBRARY_STATIC, APR_DLL): Use APR_MAJOR_VERSION
to determine suffix.
* build/cmake/FindSerf.cmake: Look for apr-util only if apr version is not '2'.
* CMakeLists.txt
(APR): Merge apr and apr-util sections, support apr-2 (which also ignores
apr-util library). In pkg-config branch we check for different names of
the config, while module branch adds apr-util only if apr version is
not '2'.
Modified:
subversion/trunk/CMakeLists.txt
subversion/trunk/build/cmake/FindAPR.cmake
subversion/trunk/build/cmake/FindSerf.cmake
Modified: subversion/trunk/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?rev=1926349&r1=1926348&r2=1926349&view=diff
==============================================================================
--- subversion/trunk/CMakeLists.txt (original)
+++ subversion/trunk/CMakeLists.txt Tue Jun 10 22:00:42 2025
@@ -260,24 +260,33 @@ if(SVN_USE_PKG_CONFIG)
find_package(PkgConfig REQUIRED)
endif()
-### APR
+### APR and APR-Util
if(SVN_USE_PKG_CONFIG)
- pkg_check_modules(apr-1 REQUIRED IMPORTED_TARGET apr-1)
- add_library(external-apr ALIAS PkgConfig::apr-1)
+ pkg_check_modules(apr IMPORTED_TARGET apr-1)
+
+ if(apr_FOUND)
+ # apr-1
+ add_library(external-apr ALIAS PkgConfig::apr)
+
+ pkg_check_modules(aprutil-1 REQUIRED IMPORTED_TARGET apr-util-1)
+ add_library(external-aprutil ALIAS PkgConfig::aprutil-1)
+ else()
+ # apr-2
+ pkg_check_modules(apr REQUIRED IMPORTED_TARGET apr-2)
+ add_library(external-apr ALIAS PkgConfig::apr)
+ add_library(external-aprutil ALIAS PkgConfig::apr)
+ endif()
else()
find_package(APR REQUIRED)
add_library(external-apr ALIAS apr::apr)
-endif()
-### APR-Util
-
-if(SVN_USE_PKG_CONFIG)
- pkg_check_modules(aprutil-1 REQUIRED IMPORTED_TARGET apr-util-1)
- add_library(external-aprutil ALIAS PkgConfig::aprutil-1)
-else()
- find_package(APRUtil REQUIRED)
- add_library(external-aprutil ALIAS apr::aprutil)
+ if(APR_MAJOR_VERSION EQUAL 2)
+ add_library(external-aprutil ALIAS apr::apr)
+ else()
+ find_package(APRUtil REQUIRED)
+ add_library(external-aprutil ALIAS apr::aprutil)
+ endif()
endif()
### ZLIB
Modified: subversion/trunk/build/cmake/FindAPR.cmake
URL:
http://svn.apache.org/viewvc/subversion/trunk/build/cmake/FindAPR.cmake?rev=1926349&r1=1926348&r2=1926349&view=diff
==============================================================================
--- subversion/trunk/build/cmake/FindAPR.cmake (original)
+++ subversion/trunk/build/cmake/FindAPR.cmake Tue Jun 10 22:00:42 2025
@@ -25,20 +25,40 @@ find_path(APR_INCLUDE_DIR
include
include/apr-1
include/apr-1.0
+ include/apr-2
+ include/apr-2.0
)
+if (APR_INCLUDE_DIR AND EXISTS ${APR_INCLUDE_DIR}/apr_version.h)
+ file(
+ STRINGS "${APR_INCLUDE_DIR}/apr_version.h" VERSION_STRINGS
+ REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)"
+ )
+
+ string(REGEX REPLACE ".*APR_MAJOR_VERSION +([0-9]+).*" "\\1"
APR_MAJOR_VERSION ${VERSION_STRINGS})
+ string(REGEX REPLACE ".*APR_MINOR_VERSION +([0-9]+).*" "\\1"
APR_MINOR_VERSION ${VERSION_STRINGS})
+ string(REGEX REPLACE ".*APR_PATCH_VERSION +([0-9]+).*" "\\1"
APR_PATCH_VERSION ${VERSION_STRINGS})
+else()
+ # Default version to 1.0.0 if not found.
+ set(APR_MAJOR_VERSION 1)
+ set(APR_MINOR_VERSION 0)
+ set(APR_PATCH_VERSION 0)
+endif()
+
+set(APR_VERSION
"${APR_MAJOR_VERSION}.${APR_MINOR_VERSION}.${APR_PATCH_VERSION}")
+
find_library(APR_LIBRARY_SHARED
- NAMES libapr-1
+ NAMES libapr-${APR_MAJOR_VERSION}
PATH_SUFFIXES lib
)
find_library(APR_LIBRARY_STATIC
- NAMES apr-1
+ NAMES apr-${APR_MAJOR_VERSION}
PATH_SUFFIXES lib
)
find_file(APR_DLL
- NAMES libapr-1.dll
+ NAMES libapr-${APR_MAJOR_VERSION}.dll
PATH_SUFFIXES bin
)
@@ -55,19 +75,6 @@ elseif(APR_LIBRARY_STATIC)
set(APR_LIBRARY ${APR_LIBRARY_STATIC})
endif()
-if (APR_INCLUDE_DIR AND EXISTS ${APR_INCLUDE_DIR}/apr_version.h)
- file(
- STRINGS "${APR_INCLUDE_DIR}/apr_version.h" VERSION_STRINGS
- REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)"
- )
-
- string(REGEX REPLACE ".*APR_MAJOR_VERSION +([0-9]+).*" "\\1"
APR_MAJOR_VERSION ${VERSION_STRINGS})
- string(REGEX REPLACE ".*APR_MINOR_VERSION +([0-9]+).*" "\\1"
APR_MINOR_VERSION ${VERSION_STRINGS})
- string(REGEX REPLACE ".*APR_PATCH_VERSION +([0-9]+).*" "\\1"
APR_PATCH_VERSION ${VERSION_STRINGS})
-
- set(APR_VERSION
"${APR_MAJOR_VERSION}.${APR_MINOR_VERSION}.${APR_PATCH_VERSION}")
-endif()
-
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
Modified: subversion/trunk/build/cmake/FindSerf.cmake
URL:
http://svn.apache.org/viewvc/subversion/trunk/build/cmake/FindSerf.cmake?rev=1926349&r1=1926348&r2=1926349&view=diff
==============================================================================
--- subversion/trunk/build/cmake/FindSerf.cmake (original)
+++ subversion/trunk/build/cmake/FindSerf.cmake Tue Jun 10 22:00:42 2025
@@ -77,16 +77,19 @@ set_target_properties(Serf::Serf PROPERT
find_package(OpenSSL REQUIRED)
find_package(APR REQUIRED)
-find_package(APRUtil REQUIRED)
find_package(ZLIB REQUIRED)
target_link_libraries(Serf::Serf INTERFACE
apr::apr
- apr::aprutil
OpenSSL::SSL
ZLIB::ZLIB
)
+if(NOT APR_MAJOR_VERSION EQUAL 2)
+ find_package(APRUtil REQUIRED)
+ target_link_libraries(Serf::Serf INTERFACE apr::aprutil)
+endif()
+
if (WIN32)
target_link_libraries(Serf::Serf INTERFACE
crypt32.lib