← Commit list

3c597ced16

Viktor Szakats
Viktor Szakats
2026-05-17
SUCCESS Duration: 230s

Subject

cmake: fix three issues generating lib options in config files

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

CMake/Macros.cmake+4 -0
@@ -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()
CMakeLists.txt+14 -0
@@ -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)