Jelajahi Sumber

FindThreads: avoid useless checks if a thread library is already found

Rolf Eike Beer 11 tahun lalu
induk
melakukan
858ce31f4c
1 mengubah file dengan 15 tambahan dan 16 penghapusan
  1. 15 16
      Modules/FindThreads.cmake

+ 15 - 16
Modules/FindThreads.cmake

@@ -63,32 +63,31 @@ else()
         set(CMAKE_THREAD_LIBS_INIT "")
         set(CMAKE_HAVE_THREADS_LIBRARY 1)
         set(Threads_FOUND TRUE)
-      endif()
+      else()
 
-      if(NOT CMAKE_HAVE_THREADS_LIBRARY)
         # Do we have -lpthreads
         CHECK_LIBRARY_EXISTS(pthreads pthread_create "" CMAKE_HAVE_PTHREADS_CREATE)
         if(CMAKE_HAVE_PTHREADS_CREATE)
           set(CMAKE_THREAD_LIBS_INIT "-lpthreads")
           set(CMAKE_HAVE_THREADS_LIBRARY 1)
           set(Threads_FOUND TRUE)
-        endif()
-
-        # Ok, how about -lpthread
-        CHECK_LIBRARY_EXISTS(pthread pthread_create "" CMAKE_HAVE_PTHREAD_CREATE)
-        if(CMAKE_HAVE_PTHREAD_CREATE)
-          set(CMAKE_THREAD_LIBS_INIT "-lpthread")
-          set(CMAKE_HAVE_THREADS_LIBRARY 1)
-          set(Threads_FOUND TRUE)
-        endif()
+        else()
 
-        if(CMAKE_SYSTEM MATCHES "SunOS.*")
-          # On sun also check for -lthread
-          CHECK_LIBRARY_EXISTS(thread thr_create "" CMAKE_HAVE_THR_CREATE)
-          if(CMAKE_HAVE_THR_CREATE)
-            set(CMAKE_THREAD_LIBS_INIT "-lthread")
+          # Ok, how about -lpthread
+          CHECK_LIBRARY_EXISTS(pthread pthread_create "" CMAKE_HAVE_PTHREAD_CREATE)
+          if(CMAKE_HAVE_PTHREAD_CREATE)
+            set(CMAKE_THREAD_LIBS_INIT "-lpthread")
             set(CMAKE_HAVE_THREADS_LIBRARY 1)
             set(Threads_FOUND TRUE)
+
+          elseif(CMAKE_SYSTEM MATCHES "SunOS.*")
+            # On sun also check for -lthread
+            CHECK_LIBRARY_EXISTS(thread thr_create "" CMAKE_HAVE_THR_CREATE)
+            if(CMAKE_HAVE_THR_CREATE)
+              set(CMAKE_THREAD_LIBS_INIT "-lthread")
+              set(CMAKE_HAVE_THREADS_LIBRARY 1)
+              set(Threads_FOUND TRUE)
+            endif()
           endif()
         endif()
       endif()