From ed3cd8b0463844056e039f283f8e43e2795f269a Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 29 Apr 2026 19:09:28 +0200 Subject: [PATCH] cmake: auto-select static nghttp2/nghttp3/ngtcp2 Config When detecting these dependencies via CMake Config and their main imported target is undefined, automatically assume and use their static imported target instead. Adopting from vcpkg downstream, where it's done for nghttp3 and ngtcp2, but not for nghttp2. Refs: https://github.com/microsoft/vcpkg/blob/773e092a82fc3b4c3e73ee7b049a5e119fa45898/ports/curl/dependencies.patch https://github.com/microsoft/vcpkg/commit/70b941a5d2443e79eeab62507acb41bd22201277 Downstream-patch-by: Kai Pastor Closes #21470 --- CMake/FindNGHTTP2.cmake | 2 +- CMake/FindNGHTTP3.cmake | 2 +- CMake/FindNGTCP2.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMake/FindNGHTTP2.cmake b/CMake/FindNGHTTP2.cmake index f93113f404..bca7cf8a81 100644 --- a/CMake/FindNGHTTP2.cmake +++ b/CMake/FindNGHTTP2.cmake @@ -61,7 +61,7 @@ if(_nghttp2_FOUND) elseif(nghttp2_CONFIG) set(NGHTTP2_FOUND TRUE) set(NGHTTP2_VERSION ${nghttp2_VERSION}) - if(NGHTTP2_USE_STATIC_LIBS) + if(NGHTTP2_USE_STATIC_LIBS OR NOT TARGET nghttp2::nghttp2) set(_nghttp2_LIBRARIES nghttp2::nghttp2_static) else() set(_nghttp2_LIBRARIES nghttp2::nghttp2) diff --git a/CMake/FindNGHTTP3.cmake b/CMake/FindNGHTTP3.cmake index 427c139f21..ed671b7a49 100644 --- a/CMake/FindNGHTTP3.cmake +++ b/CMake/FindNGHTTP3.cmake @@ -61,7 +61,7 @@ if(_nghttp3_FOUND) elseif(nghttp3_CONFIG) set(NGHTTP3_FOUND TRUE) set(NGHTTP3_VERSION ${nghttp3_VERSION}) - if(NGHTTP3_USE_STATIC_LIBS) + if(NGHTTP3_USE_STATIC_LIBS OR NOT TARGET nghttp3::nghttp3) set(_nghttp3_LIBRARIES nghttp3::nghttp3_static) else() set(_nghttp3_LIBRARIES nghttp3::nghttp3) diff --git a/CMake/FindNGTCP2.cmake b/CMake/FindNGTCP2.cmake index e492916377..70dae14b86 100644 --- a/CMake/FindNGTCP2.cmake +++ b/CMake/FindNGTCP2.cmake @@ -105,7 +105,7 @@ if(_ngtcp2_FOUND) elseif(ngtcp2_CONFIG) set(NGTCP2_FOUND TRUE) set(NGTCP2_VERSION ${ngtcp2_VERSION}) - if(NGTCP2_USE_STATIC_LIBS) + if(NGTCP2_USE_STATIC_LIBS OR NOT TARGET ngtcp2::ngtcp2) set(_ngtcp2_LIBRARIES ngtcp2::ngtcp2_static ngtcp2::${_crypto_library_lower}_static) else() set(_ngtcp2_LIBRARIES ngtcp2::ngtcp2 ngtcp2::${_crypto_library_lower})