diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2002-11-12 14:19:13 -0500 |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2002-11-12 14:19:13 -0500 |
commit | 0b04a61366f519d2095693f2cc3382f9341d47c1 (patch) | |
tree | 7d6bf044999af22fb42b9aec45b77b2e75dc68dd /Modules/FindThreads.cmake | |
parent | 8b689f9a622722d5389d56602387fafe3d398464 (diff) | |
download | cmake-0b04a61366f519d2095693f2cc3382f9341d47c1.tar.gz |
add find threads check
Diffstat (limited to 'Modules/FindThreads.cmake')
-rw-r--r-- | Modules/FindThreads.cmake | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Modules/FindThreads.cmake b/Modules/FindThreads.cmake new file mode 100644 index 0000000000..5354b4da0f --- /dev/null +++ b/Modules/FindThreads.cmake @@ -0,0 +1,68 @@ +# This module determines the thread library of the system. +# The following variables are set +# CMAKE_THREAD_LIBS - the thread library to link into an application (-lpthread ) +# CMAKE_USE_SPROC - are we using sproc? +# CMAKE_USE_WIN32_THREADS - are we using WIN32 threads +# CMAKE_USE_PTHREADS - are we using pthreads +# + +INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) +INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake) + +IF(CMAKE_SYSTEM MATCHES IRIX) + CHECK_INCLUDE_FILE("sys/prctl.h" CMAKE_HAVE_SPROC_H) +ENDIF(CMAKE_SYSTEM MATCHES IRIX) + +CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H) +IF(CMAKE_HAVE_PTHREAD_H) + IF(NOT CMAKE_HAVE_SPROC_H) + CHECK_LIBRARY_EXISTS(pthreads pthread_create "" CMAKE_HAVE_PTHREADS_CREATE) + IF(CMAKE_HAVE_PTHREADS_CREATE) + SET(CMAKE_THREAD_LIBS "-lpthreads") + ENDIF(CMAKE_HAVE_PTHREADS_CREATE) + CHECK_LIBRARY_EXISTS(pthread pthread_create "" CMAKE_HAVE_PTHREAD_CREATE) + IF(CMAKE_HAVE_PTHREAD_CREATE) + SET(CMAKE_THREAD_LIBS "-lpthread") + ENDIF(CMAKE_HAVE_PTHREAD_CREATE) + IF(CMAKE_SYSTEM MATCHES "SunOS.*") + CHECK_LIBRARY_EXISTS(thread thr_create "" CMAKE_HAVE_THR_CREATE) + IF(CMAKE_HAVE_THR_CREATE) + SET(CMAKE_THREAD_LIBS "-lthread") + ENDIF(CMAKE_HAVE_THR_CREATE) + ENDIF(CMAKE_SYSTEM MATCHES "SunOS.*") + ENDIF(NOT CMAKE_HAVE_SPROC_H) +ENDIF(CMAKE_HAVE_PTHREAD_H) + +IF(CMAKE_HAVE_SPROC_H) + SET(CMAKE_USE_SPROC 1) +ENDIF(CMAKE_HAVE_SPROC_H) +IF(CMAKE_THREAD_LIBS) + SET(CMAKE_USE_PTHREADS 1) +ENDIF(CMAKE_THREAD_LIBS) + +IF(CMAKE_SYSTEM MATCHES "Windows") + SET(CMAKE_USE_WIN32_THREADS 1) +ENDIF(CMAKE_SYSTEM MATCHES "Windows") + +IF(CMAKE_SYSTEM MATCHES "HP-UX-*") + SET(CMAKE_THREAD_LIBS "-lcma") + SET(CMAKE_USE_PTHREADS 1) + SET(CMAKE_HP_PTHREADS 1) +ENDIF(CMAKE_SYSTEM MATCHES "HP-UX-*") + +IF(CMAKE_SYSTEM MATCHES "OSF1-V*") + SET(CMAKE_USE_PTHREADS 0) + SET(CMAKE_THREAD_LIBS ) +ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V*") + +IF(CMAKE_SYSTEM MATCHES "FreeBSD*") + SET(CMAKE_USE_PTHREADS 0) + SET(CMAKE_THREAD_LIBS ) +ENDIF(CMAKE_SYSTEM MATCHES "FreeBSD*") + +IF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*") + SET(CMAKE_USE_PTHREADS 1) + SET(CMAKE_THREAD_LIBS ) + SET(CMAKE_USE_WIN32_THREADS 0) +ENDIF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*") + |