From 2d546d239ecd455b6459e68b85ef8d4b045c0a00 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 28 Mar 2026 23:23:01 +0100 Subject: [PATCH] cmake: use `Threads::Threads` imported target for POSIX Threads - use `Threads::Threads` imported target, replacing `CMAKE_THREAD_LIBS_INIT`. To use the modern form and to allow using `THREADS_PREFER_PTHREAD_FLAG` option. - only add Threads library/options if POSIX Threads was detected (not any other threading backend FindThreads may detect, e.g. the HP one.) - curl-config.in.cmake: detect and define `Threads::Threads`. Refs: https://cmake.org/cmake/help/v3.18/module/FindThreads.html https://cmake.org/cmake/help/v4.3/module/FindThreads.html Closes #21163 --- CMake/curl-config.in.cmake | 4 ++++ CMakeLists.txt | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CMake/curl-config.in.cmake b/CMake/curl-config.in.cmake index 29c77c4976..c6e4341f7b 100644 --- a/CMake/curl-config.in.cmake +++ b/CMake/curl-config.in.cmake @@ -35,6 +35,10 @@ endif() include(CMakeFindDependencyMacro) +if("@HAVE_THREADS_POSIX@") + find_dependency(Threads) # for Threads::Threads +endif() + if("@USE_OPENSSL@") if("@OPENSSL_VERSION_MAJOR@") find_dependency(OpenSSL "@OPENSSL_VERSION_MAJOR@") diff --git a/CMakeLists.txt b/CMakeLists.txt index 4034b56813..17c54395bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -645,8 +645,10 @@ endif() if(NOT WIN32) find_package(Threads) - set(HAVE_THREADS_POSIX ${CMAKE_USE_PTHREADS_INIT}) - list(APPEND CURL_NETWORK_AND_TIME_LIBS ${CMAKE_THREAD_LIBS_INIT}) + if(CMAKE_USE_PTHREADS_INIT) + set(HAVE_THREADS_POSIX 1) + list(APPEND CURL_NETWORK_AND_TIME_LIBS Threads::Threads) + endif() endif() if(ENABLE_THREADED_RESOLVER) @@ -2342,6 +2344,7 @@ if(NOT CURL_DISABLE_INSTALL) # HAVE_GSSAPI # HAVE_LIBIDN2 # HAVE_LIBZ ZLIB_VERSION_MAJOR + # HAVE_THREADS_POSIX # HAVE_ZSTD # USE_ARES # USE_BACKTRACE