# 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_USE_PTHREADS) 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*") ENDIF(CMAKE_USE_PTHREADS)