From Philip Lowman, "Here's the promised cleanup of the OSG's CMakeLists.txt files for the src/ folder. I'll submit the others separately.
Also, there was also a small bug in osgDB's CMakeLists.txt that was causing an error when I tested with CMake 2.4.4.
IF(${OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX} STREQUAL "quicktime")
was changed to
IF(OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX STREQUAL "quicktime")
"
This commit is contained in:
@@ -13,12 +13,12 @@ INCLUDE(CheckAtomicOps)
|
||||
|
||||
# User Options
|
||||
OPTION(DYNAMIC_OPENTHREADS "Set to ON to build OpenThreads for dynamic linking. Use OFF for static." ON)
|
||||
IF (DYNAMIC_OPENTHREADS)
|
||||
IF(DYNAMIC_OPENTHREADS)
|
||||
SET(OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC "SHARED")
|
||||
ELSE (DYNAMIC_OPENTHREADS)
|
||||
ELSE()
|
||||
SET(OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC "STATIC")
|
||||
SET(OT_LIBRARY_STATIC 1)
|
||||
ENDIF (DYNAMIC_OPENTHREADS)
|
||||
ENDIF()
|
||||
|
||||
################################################################################
|
||||
# Set Config file
|
||||
@@ -35,7 +35,7 @@ IF(MSVC)
|
||||
SET(OPENTHREADS_VERSIONINFO_RC "${PROJECT_BINARY_DIR}/PlatformSpecifics/Windows/OpenThreadsVersionInfo.rc")
|
||||
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/PlatformSpecifics/Windows/OpenThreadsVersionInfo.rc.in"
|
||||
"${OPENTHREADS_VERSIONINFO_RC}")
|
||||
ENDIF(MSVC)
|
||||
ENDIF()
|
||||
|
||||
|
||||
# INSTALL_FILES(/include/OpenThreads/ FILES "${OPENTHREADS_CONFIG_HEADER}")
|
||||
@@ -66,11 +66,11 @@ IF(CMAKE_SYSTEM MATCHES IRIX)
|
||||
IF(CMAKE_USE_SPROC_INIT)
|
||||
# In this case, only Sproc exists, so no option.
|
||||
SET(OPENTHREADS_USE_SPROC_INSTEAD_OF_PTHREADS 1)
|
||||
ELSE(CMAKE_USE_SPROC_INIT)
|
||||
ELSE()
|
||||
IF(CMAKE_HAVE_SPROC_H)
|
||||
OPTION(OPENTHREADS_USE_SPROC_INSTEAD_OF_PTHREADS "Set to ON to build OpenThreads against sproc instead of pthreads" OFF)
|
||||
ENDIF(CMAKE_HAVE_SPROC_H)
|
||||
ENDIF(CMAKE_USE_SPROC_INIT)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF(CMAKE_SYSTEM MATCHES IRIX)
|
||||
|
||||
# Maybe we should be using the FindThreads.cmake module?
|
||||
@@ -78,22 +78,22 @@ IF(WIN32)
|
||||
# So I think Cygwin wants to use pthreads
|
||||
IF(CYGWIN)
|
||||
SUBDIRS(pthreads)
|
||||
ELSE(CYGWIN)
|
||||
ELSE()
|
||||
# Everybody else including Msys should probably go here
|
||||
SUBDIRS(win32)
|
||||
# examples)
|
||||
ENDIF(CYGWIN)
|
||||
ELSE(WIN32)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF(UNIX)
|
||||
IF(OPENTHREADS_USE_SPROC_INSTEAD_OF_PTHREADS)
|
||||
SUBDIRS(sproc)
|
||||
ELSE(OPENTHREADS_USE_SPROC_INSTEAD_OF_PTHREADS)
|
||||
ELSE()
|
||||
SUBDIRS(pthreads)
|
||||
ENDIF(OPENTHREADS_USE_SPROC_INSTEAD_OF_PTHREADS)
|
||||
ELSE(UNIX)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MESSAGE("Sorry, OpenThreads may not support your platform")
|
||||
ENDIF(UNIX)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Make sure everyone can find Config
|
||||
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include)
|
||||
|
||||
@@ -25,7 +25,7 @@ ADD_LIBRARY(${LIB_NAME}
|
||||
|
||||
IF(OPENTHREADS_SONAMES)
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
|
||||
ENDIF(OPENTHREADS_SONAMES)
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_REQUIRED_LIBRARIES_SAFE "${CMAKE_REQUIRED_LIBRARIES}")
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
@@ -33,40 +33,40 @@ SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INI
|
||||
CHECK_FUNCTION_EXISTS(pthread_yield HAVE_PTHREAD_YIELD)
|
||||
IF(HAVE_PTHREAD_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_YIELD)
|
||||
ELSE(HAVE_PTHREAD_YIELD)
|
||||
ELSE()
|
||||
# sched_yield appears not in libc, pthreads or whatever on some systems
|
||||
CHECK_FUNCTION_EXISTS(sched_yield HAVE_SCHED_YIELD)
|
||||
IF(NOT HAVE_SCHED_YIELD)
|
||||
CHECK_LIBRARY_EXISTS(rt sched_yield "" HAVE_SCHED_YIELD)
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
SET(CMAKE_THREAD_LIBS_INIT "${CMAKE_THREAD_LIBS_INIT} -lrt")
|
||||
ENDIF(HAVE_SCHED_YIELD)
|
||||
ENDIF(NOT HAVE_SCHED_YIELD)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_SCHED_YIELD)
|
||||
ENDIF(HAVE_SCHED_YIELD)
|
||||
ENDIF(HAVE_PTHREAD_YIELD)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
# need to have that for pthread_setaffinity_np on linux
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
|
||||
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_setconcurrency HAVE_PTHREAD_SETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_SETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETCONCURRENCY)
|
||||
ENDIF(HAVE_PTHREAD_SETCONCURRENCY)
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_getconcurrency HAVE_PTHREAD_GETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_GETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_GETCONCURRENCY)
|
||||
ENDIF(HAVE_PTHREAD_GETCONCURRENCY)
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_setaffinity_np HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
IF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ELSE(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
@@ -76,7 +76,7 @@ int main() {
|
||||
}" HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ELSE(HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
@@ -86,9 +86,9 @@ int main() {
|
||||
}" HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ENDIF(HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ENDIF(HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ENDIF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_SAFE}")
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ ADD_LIBRARY(${LIB_NAME}
|
||||
|
||||
IF(OPENTHREADS_SONAMES)
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
|
||||
ENDIF(OPENTHREADS_SONAMES)
|
||||
ENDIF()
|
||||
|
||||
# Do we need to link against anything for Sproc?
|
||||
#TARGET_LINK_LIBRARIES(${LIB_NAME}
|
||||
|
||||
@@ -27,7 +27,7 @@ ADD_LIBRARY(${LIB_NAME}
|
||||
|
||||
IF(OPENTHREADS_SONAMES)
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
|
||||
ENDIF(OPENTHREADS_SONAMES)
|
||||
ENDIF()
|
||||
|
||||
# Since we're building different platforms binaries in
|
||||
# their respective directories, we need to set the
|
||||
@@ -38,7 +38,7 @@ LINK_DIRECTORIES(
|
||||
|
||||
IF(MSVC AND OSG_MSVC_VERSIONED_DLL)
|
||||
HANDLE_MSVC_DLL(ot ${OPENTHREADS_SOVERSION})
|
||||
ENDIF(MSVC AND OSG_MSVC_VERSIONED_DLL)
|
||||
ENDIF()
|
||||
|
||||
INSTALL(
|
||||
TARGETS OpenThreads
|
||||
|
||||
Reference in New Issue
Block a user