add find threads check

This commit is contained in:
Bill Hoffman 2002-11-12 14:19:13 -05:00
parent 8b689f9a62
commit 0b04a61366
3 changed files with 93 additions and 1 deletions

View File

@ -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)

View File

@ -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

68
Modules/FindThreads.cmake Normal file
View File

@ -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*")