mirror of
https://github.com/curl/curl.git
synced 2026-06-12 10:54:17 +03:00
cmake: fix three issues generating lib options in config files
- drop duplicate libs lists next to each other in `libcurl.pc`. Logic copied from libssh2. Fixing (seen in a local build): ```diff -Libs.private: -lssh2 -lz -lz -lldap -llber -lssl -lcrypto -lcrypto -lz -lbrotlidec -lbrotlicommon -lzstd -lnghttp2 -licucore -liconv -lpsl -lbacktrace +Libs.private: -lssh2 -lz -lldap -llber -lssl -lcrypto -lz -lbrotlidec -lbrotlicommon -lzstd -lnghttp2 -licucore -liconv -lpsl -lbacktrace ``` Refs:e1da7b2cb8https://github.com/libssh2/libssh2/pull/16216464301820https://github.com/libssh2/libssh2/pull/1131 - handle `$<LINK_ONLY:NAMESPACE::NAME>` references. Fixing (seen in a local build using libssh2 v1.11.2-DEV): ```diff -Libs.private: -lssh2 -l$<LINK_ONLY:OpenSSL::Crypto> -lz -lldap -llber [...] +Libs.private: -lssh2 -lcrypto -lz -lldap -llber [...] ``` - fix `-l-pthread` sneaking into `libcurl.pc`. Fixing (seen with Android): ```diff -Libs.private: -lz -l-pthread +Libs.private: -pthread -lz ``` Refs:2b65c20fc6/ports/curl/dependencies.patch (L631-L634)70b941a5d2 (diff-7f2c3b2f93cd3478671a603cbd5ef818c7c403a11dc25e1d3539e9b03495a5d3)Upstream-patch-by: Kai Pastor Closes #21654
This commit is contained in:
parent
64adc43a6e
commit
3c597ced16
2 changed files with 18 additions and 0 deletions
|
|
@ -267,6 +267,10 @@ macro(curl_collect_target_link_options _target)
|
|||
get_target_property(_val ${_target} INTERFACE_LINK_LIBRARIES)
|
||||
if(_val)
|
||||
foreach(_lib IN LISTS _val)
|
||||
# E.g. via libssh2: "$<LINK_ONLY:OpenSSL::Crypto>"
|
||||
if(_lib MATCHES "LINK_ONLY:")
|
||||
string(REGEX MATCH "([A-Za-z0-9_-]+::[A-Za-z0-9_-]+)" _lib "${_lib}") # Extract imported target name
|
||||
endif()
|
||||
if(TARGET "${_lib}")
|
||||
curl_collect_target_link_options(${_lib})
|
||||
else()
|
||||
|
|
|
|||
|
|
@ -2211,6 +2211,9 @@ if(NOT CURL_DISABLE_INSTALL)
|
|||
list(APPEND LIBCURL_PC_LIBS_PRIVATE "${_lib}")
|
||||
list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}")
|
||||
endif()
|
||||
elseif(_lib MATCHES "^-") # '-option'
|
||||
list(APPEND _ldflags "${_lib}")
|
||||
list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}")
|
||||
else()
|
||||
list(APPEND LIBCURL_PC_LIBS_PRIVATE "-l${_lib}")
|
||||
list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}")
|
||||
|
|
@ -2241,6 +2244,17 @@ if(NOT CURL_DISABLE_INSTALL)
|
|||
string(REPLACE ";" "," LIBCURL_PC_REQUIRES_PRIVATE "${LIBCURL_PC_REQUIRES_PRIVATE}")
|
||||
endif()
|
||||
if(LIBCURL_PC_LIBS_PRIVATE)
|
||||
# Remove duplicates listed next to each other
|
||||
set(_libs "")
|
||||
set(_prev "")
|
||||
foreach(_lib IN LISTS LIBCURL_PC_LIBS_PRIVATE)
|
||||
if(NOT _prev STREQUAL _lib)
|
||||
list(APPEND _libs "${_lib}")
|
||||
set(_prev "${_lib}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(LIBCURL_PC_LIBS_PRIVATE "${_libs}")
|
||||
|
||||
string(REPLACE ";" " " LIBCURL_PC_LIBS_PRIVATE "${LIBCURL_PC_LIBS_PRIVATE}")
|
||||
endif()
|
||||
if(_ldflags)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue