← Commit list

3e841630ec

Viktor Szakats
Viktor Szakats
2026-01-25
SUCCESS Duration: 315s

Subject

cmake: fix logic for openssl/zlib binutils ld workaround

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/curl-config.in.cmake+10 -0
@@ -39,9 +39,19 @@ if("@USE_OPENSSL@")
else()
find_dependency(OpenSSL)
endif()
+ if(TARGET OpenSSL::Crypto AND NOT TARGET CURL::OpenSSL_Crypto)
+ add_library(CURL::OpenSSL_Crypto INTERFACE IMPORTED)
+ get_target_property(_curl_libname OpenSSL::Crypto LOCATION)
+ set_target_properties(CURL::OpenSSL_Crypto PROPERTIES INTERFACE_LINK_LIBRARIES "${_curl_libname}")
+ endif()
endif()
if("@HAVE_LIBZ@")
find_dependency(ZLIB "@ZLIB_VERSION_MAJOR@")
+ if(TARGET ZLIB::ZLIB AND NOT TARGET CURL::ZLIB)
+ add_library(CURL::ZLIB INTERFACE IMPORTED)
+ get_target_property(_curl_libname ZLIB::ZLIB LOCATION)
+ set_target_properties(CURL::ZLIB PROPERTIES INTERFACE_LINK_LIBRARIES "${_curl_libname}")
+ endif()
endif()
set(_curl_cmake_module_path_save ${CMAKE_MODULE_PATH})
CMakeLists.txt+11 -14
@@ -1813,21 +1813,18 @@ endif()
# before dependencies detected via curl's custom Find modules, and breaks
# linkers sensitive to lib order. There must be a better solution to this.
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
- set(_libs "")
- if(USE_OPENSSL)
- list(APPEND _libs OpenSSL::Crypto)
- endif()
- if(HAVE_LIBZ)
- list(APPEND _libs ZLIB::ZLIB)
+ if(USE_OPENSSL AND TARGET OpenSSL::Crypto)
+ add_library(CURL::OpenSSL_Crypto INTERFACE IMPORTED)
+ get_target_property(_curl_libname OpenSSL::Crypto LOCATION)
+ set_target_properties(CURL::OpenSSL_Crypto PROPERTIES INTERFACE_LINK_LIBRARIES "${_curl_libname}")
+ list(APPEND CURL_LIBS CURL::OpenSSL_Crypto)
+ endif()
+ if(HAVE_LIBZ AND TARGET ZLIB::ZLIB)
+ add_library(CURL::ZLIB INTERFACE IMPORTED)
+ get_target_property(_curl_libname ZLIB::ZLIB LOCATION)
+ set_target_properties(CURL::ZLIB PROPERTIES INTERFACE_LINK_LIBRARIES "${_curl_libname}")
+ list(APPEND CURL_LIBS CURL::ZLIB)
endif()
- foreach(_lib IN LISTS _libs)
- if(TARGET "${_lib}")
- add_library(CURL::${_lib} INTERFACE IMPORTED)
- get_target_property(_libname "${_lib}" LOCATION)
- set_target_properties(${_lib} PROPERTIES INTERFACE_LINK_LIBRARIES "${_libname}")
- list(APPEND CURL_LIBS ${_lib})
- endif()
- endforeach()
if(WIN32)
add_library(CURL::win32_winsock INTERFACE IMPORTED)
set_target_properties(CURL::win32_winsock PROPERTIES INTERFACE_LINK_LIBRARIES "ws2_32")