add find threads check
This commit is contained in:
parent
8b689f9a62
commit
0b04a61366
|
@ -26,3 +26,27 @@ CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
|
|||
INCLUDE (${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
|
||||
TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN)
|
||||
INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
|
||||
INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
|
||||
|
||||
SET (CMAKE_THREAD_LIBS "${CMAKE_THREAD_LIBS}" CACHE STRING
|
||||
"Thread library used.")
|
||||
|
||||
SET (CMAKE_USE_PTHREADS "${CMAKE_USE_PTHREADS}" CACHE BOOL
|
||||
"Use the pthreads library.")
|
||||
|
||||
SET (CMAKE_USE_WIN32_THREADS "${CMAKE_USE_WIN32_THREADS}" CACHE BOOL
|
||||
"Use the win32 thread library.")
|
||||
|
||||
SET (CMAKE_HP_PTHREADS ${CMAKE_HP_PTHREADS} CACHE BOOL
|
||||
"Use HP pthreads.")
|
||||
|
||||
SET (CMAKE_USE_SPROC ${CMAKE_USE_SPROC} CACHE BOOL
|
||||
"Use sproc libs.")
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
CMAKE_THREAD_LIBS
|
||||
CMAKE_USE_PTHREADS
|
||||
CMAKE_USE_WIN32_THREADS
|
||||
CMAKE_USE_SPROC
|
||||
CMAKE_HP_PTHREADS)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
MACRO(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
|
||||
SET(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION -DCHECK_FUNCTION_EXISTS=${FUNCTION})
|
||||
|
||||
MESSAGE("Lib: ${LIBRARY} FUN: ${FUNCTION} LOC: ${LOCATION} VAR: ${VARIABLE} ")
|
||||
TRY_COMPILE(${VARIABLE}
|
||||
${PROJECT_BINARY_DIR}
|
||||
${CMAKE_ROOT}/Modules/CheckFunctionExists.c
|
||||
|
|
|
@ -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*")
|
||||
|
Loading…
Reference in New Issue