]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
cmake refactor: move HP-UX specific logic into its own function 3946/head
authorYann Collet <cyan@fb.com>
Mon, 11 Mar 2024 23:11:15 +0000 (16:11 -0700)
committerYann Collet <cyan@fb.com>
Mon, 11 Mar 2024 23:22:13 +0000 (16:22 -0700)
reduce visual clutter of corner case configuration.

build/cmake/CMakeLists.txt

index 50b1bb95c81b05d3d6b7b5a3a8aab18addc19a1e..399b818fc20b1bcba8d3af77bdff5bc8ef5ce597 100644 (file)
@@ -114,20 +114,25 @@ endif ()
 #-----------------------------------------------------------------------------
 # External dependencies
 #-----------------------------------------------------------------------------
+# Define a function to handle special thread settings for HP-UX
+# See https://github.com/facebook/zstd/pull/3862 for details.
+function(setup_hpux_threads)
+    find_package(Threads)
+    if (NOT Threads_FOUND)
+        set(CMAKE_USE_PTHREADS_INIT 1 PARENT_SCOPE)
+        set(CMAKE_THREAD_LIBS_INIT -lpthread PARENT_SCOPE)
+        set(CMAKE_HAVE_THREADS_LIBRARY 1 PARENT_SCOPE)
+        set(Threads_FOUND TRUE PARENT_SCOPE)
+    endif()
+endfunction()
+
 if (ZSTD_MULTITHREAD_SUPPORT AND UNIX)
     if (CMAKE_SYSTEM_NAME MATCHES "HP-UX")
-        find_package(Threads)
-        if (NOT Threads_FOUND)
-            set(CMAKE_USE_PTHREADS_INIT 1)
-            set(CMAKE_THREAD_LIBS_INIT -lpthread)
-            set(CMAKE_HAVE_THREADS_LIBRARY 1)
-            set(Threads_FOUND TRUE)
-        endif ()
-    else ()
+        setup_hpux_threads()
+    else()
         set(THREADS_PREFER_PTHREAD_FLAG ON)
         find_package(Threads REQUIRED)
-    endif ()
-
+    endif()
     if (CMAKE_USE_PTHREADS_INIT)
         set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}")
     else()