Den fre 27 juni 2025 kl 18:33 skrev Timofei Zhakov <[email protected]>:
>
>> Also, the searching libraries using pkg-config doesn't work on my
>> environment. I think it is caused by the prefix passed to
>> pkg_check_modules is wrong.
>>
>> [[[
>> diff --git a/CMakeLists.txt b/CMakeLists.txt
>> index e60809b1e..d94c30b14 100644
>> --- a/CMakeLists.txt
>> +++ b/CMakeLists.txt
>> @@ -269,8 +269,8 @@ if(SVN_USE_PKG_CONFIG)
>> # apr-1
>> add_library(external-apr ALIAS PkgConfig::apr1)
>>
>> - pkg_check_modules(aprutil-1 REQUIRED IMPORTED_TARGET apr-util-1)
>> - add_library(external-aprutil ALIAS PkgConfig::aprutil-1)
>> + pkg_check_modules(aprutil1 REQUIRED IMPORTED_TARGET apr-util-1)
>> + add_library(external-aprutil ALIAS PkgConfig::aprutil1)
>> else()
>> # apr-2
>> pkg_check_modules(apr2 REQUIRED IMPORTED_TARGET apr-2)
>> ]]]
>
>
> The FindPkgConfig module provides a function called pkg_search_module()
> that simplifies the code by searching through all names one by one. I
> initially chose not to use it due to its less detailed logging. However, I
> now believe it's reasonable to use it to support these names as well.
>
> --
> Timofei Zhakov
>
I think Brane's argument for prioritising apr-2/serf-2 over apr-1/serf-1
when available sounds reasonable.
Something like this?
[[[
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt (revision 1926861)
+++ CMakeLists.txt (working copy)
@@ -263,18 +263,15 @@
### APR and APR-Util
if(SVN_USE_PKG_CONFIG)
- pkg_check_modules(apr1 IMPORTED_TARGET apr-1)
+ pkg_search_module(apr REQUIRED IMPORTED_TARGET apr-2 apr-1)
+ add_library(external-apr ALIAS PkgConfig::apr)
- if(apr1_FOUND)
+ if(APR_VERSION VERSION_LESS 2.0.0)
# apr-1
- add_library(external-apr ALIAS PkgConfig::apr1)
-
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(apr2 REQUIRED IMPORTED_TARGET apr-2)
- add_library(external-apr ALIAS PkgConfig::apr2)
add_library(external-aprutil ALIAS PkgConfig::apr2)
endif()
else()
@@ -375,15 +372,10 @@
### Serf
if (SVN_ENABLE_RA_SERF)
if(SVN_USE_PKG_CONFIG)
- pkg_check_modules(serf1 IMPORTED_TARGET serf-1)
+ pkg_search_module(serf IMPORTED_TARGET serf-2 serf-1)
- if(serf1_FOUND)
- # serf-1
- add_library(external-serf ALIAS PkgConfig::serf1)
- else()
- # serf-2
- pkg_check_modules(serf2 REQUIRED IMPORTED_TARGET serf-2)
- add_library(external-serf ALIAS PkgConfig::serf2)
+ if(serf_FOUND)
+ add_library(external-serf ALIAS PkgConfig::serf)
endif()
else()
find_package(Serf REQUIRED)
]]]
For APR:
[[[
Index: build/cmake/FindAPR.cmake
===================================================================
--- build/cmake/FindAPR.cmake (revision 1926861)
+++ build/cmake/FindAPR.cmake (working copy)
@@ -23,10 +23,10 @@
NAMES apr.h
PATH_SUFFIXES
include
+ include/apr-2
+ include/apr-2.0
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)
]]]
Cheers,
Daniel