From Luigi Calori, "when we link against something that comes out from a Find... we ususally have a variable <LINK_VAR_NAME>available like OPENTHREADS_LIBRARY,
so I' ve set up a macro that uses the variable name expanded for linking, and test if a variable ${LINK_VAR_NAME}_DEBUG
like OPENTHREADS_LIBRARY_DEBUG exists and in case uses it for linking in debug mode.
I' ve also set up FindOpenThreads to set up these variables.
I had to edit the core libraries CMakeLists to add the calls to the macros used.
I' ve tested under MSVC"
This commit is contained in:
@@ -39,7 +39,25 @@ FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
|
||||
|
||||
|
||||
FIND_LIBRARY(OPENTHREADS_LIBRARY
|
||||
NAMES OpenThreads OpenThreadsd OpenThreadsWin32 OpenThreadsWin32d
|
||||
NAMES OpenThreads OpenThreadsWin32
|
||||
PATHS
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
$ENV{OPENTHREADS_DIR}/lib
|
||||
$ENV{OSG_DIR}/lib
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/usr/local/lib64
|
||||
/usr/local/lib
|
||||
/usr/lib64
|
||||
/usr/lib
|
||||
/sw/lib
|
||||
/opt/local/lib
|
||||
/opt/csw/lib
|
||||
/opt/lib
|
||||
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib
|
||||
)
|
||||
FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG
|
||||
NAMES OpenThreadsd OpenThreadsWin32d
|
||||
PATHS
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
$ENV{OPENTHREADS_DIR}/lib
|
||||
@@ -60,6 +78,10 @@ FIND_LIBRARY(OPENTHREADS_LIBRARY
|
||||
SET(OPENTHREADS_FOUND "NO")
|
||||
IF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY)
|
||||
SET(OPENTHREADS_FOUND "YES")
|
||||
MESSAGE("-- Found OpenThreads: "${OPENTHREADS_LIBRARY})
|
||||
MESSAGE("-- Found OpenThreads: "${OPENTHREADS_LIBRARY})
|
||||
IF(NOT OPENTHREADS_LIBRARY_DEBUG)
|
||||
MESSAGE("-- Warning Debug OpenThreads not found, using: ${OPENTHREADS_LIBRARY}")
|
||||
SET(OPENTHREADS_LIBRARY_DEBUG "${OPENTHREADS_LIBRARY}")
|
||||
ENDIF(NOT OPENTHREADS_LIBRARY_DEBUG)
|
||||
ENDIF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user