| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- # This module determines the thread library of the system.
 
- # The following variables are set
 
- # CMAKE_THREAD_LIBS_INIT        - the thread library to link into an application (-lpthread )
 
- # CMAKE_USE_SPROC_INIT          - are we using sproc?
 
- # CMAKE_USE_WIN32_THREADS_INIT  - are we using WIN32 threads
 
- # CMAKE_USE_PTHREADS_INIT       - are we using pthreads
 
- # CMAKE_HP_PTHREADS_INIT             - are we using hp pthreads
 
- INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
 
- INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
 
- # Do we have sproc?
 
- IF(CMAKE_SYSTEM MATCHES IRIX)
 
-   CHECK_INCLUDE_FILE("sys/prctl.h"  CMAKE_HAVE_SPROC_H)
 
- ENDIF(CMAKE_SYSTEM MATCHES IRIX)
 
- IF(CMAKE_HAVE_SPROC_H)
 
-   # We have sproc
 
-   SET(CMAKE_USE_SPROC_INIT 1)
 
- ELSE(CMAKE_HAVE_SPROC_H)
 
-   # Do we have pthreads?
 
-   CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
 
-   IF(CMAKE_HAVE_PTHREAD_H)
 
-     # We have pthread.h
 
-     # Let's check for the library now.
 
-     SET(CMAKE_HAVE_THREADS_LIBRARY)
 
-     IF(NOT THREADS_HAVE_PTHREAD_ARG)
 
-       # 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)
 
-       ENDIF(CMAKE_HAVE_PTHREADS_CREATE)
 
-       # 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)
 
-       ENDIF(CMAKE_HAVE_PTHREAD_CREATE)
 
-       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")
 
-           SET(CMAKE_HAVE_THREADS_LIBRARY 1)
 
-         ENDIF(CMAKE_HAVE_THR_CREATE)
 
-       ENDIF(CMAKE_SYSTEM MATCHES "SunOS.*")
 
-     ENDIF(NOT THREADS_HAVE_PTHREAD_ARG)
 
-     IF(NOT CMAKE_HAVE_THREADS_LIBRARY)
 
-       # If we did not found -lpthread, -lpthread, or -lthread, look for -pthread
 
-       IF("THREADS_HAVE_PTHREAD_ARG" MATCHES "^THREADS_HAVE_PTHREAD_ARG")
 
-         MESSAGE(STATUS "Check if compiler accepts -pthread")
 
-         TRY_RUN(THREADS_PTHREAD_ARG THREADS_HAVE_PTHREAD_ARG
 
-           ${CMAKE_BINARY_DIR}
 
-           ${CMAKE_ROOT}/Modules/CheckForPthreads.c
 
-           CMAKE_FLAGS -DLINK_LIBRARIES:STRING=-pthread
 
-           OUTPUT_VARIABLE OUTPUT)
 
-         IF(THREADS_HAVE_PTHREAD_ARG)
 
-           IF(THREADS_PTHREAD_ARG MATCHES "^2$")
 
-             MESSAGE(STATUS "Check if compiler accepts -pthread - yes")
 
-           ELSE(THREADS_PTHREAD_ARG MATCHES "^2$")
 
-             MESSAGE(STATUS "Check if compiler accepts -pthread - no")
 
-             FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log 
 
-               "Determining if compiler accepts -pthread returned ${THREADS_PTHREAD_ARG} instead of 2. The compiler had the following output:\n${OUTPUT}\n\n")
 
-           ENDIF(THREADS_PTHREAD_ARG MATCHES "^2$")
 
-         ELSE(THREADS_HAVE_PTHREAD_ARG)
 
-           MESSAGE(STATUS "Check if compiler accepts -pthread - no")
 
-           FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log 
 
-             "Determining if compiler accepts -pthread failed with the following output:\n${OUTPUT}\n\n")
 
-         ENDIF(THREADS_HAVE_PTHREAD_ARG)
 
-       ENDIF("THREADS_HAVE_PTHREAD_ARG" MATCHES "^THREADS_HAVE_PTHREAD_ARG")
 
-       IF(THREADS_HAVE_PTHREAD_ARG)
 
-         SET(CMAKE_THREAD_LIBS_INIT "-pthread")
 
-       ELSE(THREADS_HAVE_PTHREAD_ARG)
 
-       ENDIF(THREADS_HAVE_PTHREAD_ARG)
 
-     ENDIF(NOT CMAKE_HAVE_THREADS_LIBRARY)
 
-   ENDIF(CMAKE_HAVE_PTHREAD_H)
 
- ENDIF(CMAKE_HAVE_SPROC_H)
 
- IF(CMAKE_THREAD_LIBS_INIT)
 
-   SET(CMAKE_USE_PTHREADS_INIT 1)
 
- ENDIF(CMAKE_THREAD_LIBS_INIT)
 
- IF(CMAKE_SYSTEM MATCHES "Windows")
 
-   SET(CMAKE_USE_WIN32_THREADS_INIT 1)
 
- ENDIF(CMAKE_SYSTEM MATCHES "Windows")
 
- IF(CMAKE_USE_PTHREADS_INIT)
 
-   IF(CMAKE_SYSTEM MATCHES "HP-UX-*")
 
-     SET(CMAKE_THREAD_LIBS_INIT "-lcma")
 
-     SET(CMAKE_USE_PTHREADS_INIT 1)
 
-     SET(CMAKE_HP_PTHREADS_INIT 1)
 
-   ENDIF(CMAKE_SYSTEM MATCHES "HP-UX-*")
 
-   IF(CMAKE_SYSTEM MATCHES "OSF1-V*")
 
-     SET(CMAKE_USE_PTHREADS_INIT 0)
 
-     SET(CMAKE_THREAD_LIBS_INIT )
 
-   ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V*")
 
-   IF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*")
 
-     SET(CMAKE_USE_PTHREADS_INIT 1)
 
-     SET(CMAKE_THREAD_LIBS_INIT )
 
-     SET(CMAKE_USE_WIN32_THREADS_INIT 0)
 
-   ENDIF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*")
 
- ENDIF(CMAKE_USE_PTHREADS_INIT)
 
 
  |