]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: use `Threads::Threads` imported target for POSIX Threads
authorViktor Szakats <commit@vsz.me>
Sat, 28 Mar 2026 22:23:01 +0000 (23:23 +0100)
committerViktor Szakats <commit@vsz.me>
Mon, 30 Mar 2026 22:51:04 +0000 (00:51 +0200)
- 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
CMakeLists.txt

index 29c77c497606cbd4974582aa5427a28ba58b7752..c6e4341f7b94a195689dfde361692a1deb8ff430 100644 (file)
@@ -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@")
index 4034b56813853ace64ca461a98ac163cd1b22422..17c54395bb0547a6cd952cbfd00247fa60799c7b 100644 (file)
@@ -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