cmake: reference OpenSSL and ZLIB imported targets only when enabled

This otherwise broke building on a parent with a static library which is
available but disabled (e.g. CURL_ZLIB is set to OFF but ZLIB::ZLIB
exists)

Closes #20217
This commit is contained in:
Joshua Vandaële
2026-01-08 00:55:45 +01:00
committed by Viktor Szakats
parent 2b0d8dcc16
commit 97f518e193

View File

@@ -1799,7 +1799,14 @@ 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")
foreach(_lib IN ITEMS OpenSSL::Crypto ZLIB::ZLIB)
set(_libs "")
if(USE_OPENSSL)
list(APPEND _libs OpenSSL::Crypto)
endif()
if(HAVE_LIBZ)
list(APPEND _libs ZLIB::ZLIB)
endif()
foreach(_lib IN LISTS _libs)
if(TARGET "${_lib}")
add_library(CURL::${_lib} INTERFACE IMPORTED)
get_target_property(_libname "${_lib}" LOCATION)