From 97f518e19342d60468c2e8b1b3ce735d4f132652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= Date: Thu, 8 Jan 2026 00:55:45 +0100 Subject: [PATCH] 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 --- CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e5383ac98..e42a3f7da0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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)