cmake: fix logic for openssl/zlib binutils ld workaround
No binary (build failed)
—
(log yok)
| @@ -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}) | |
| @@ -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") | |