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:
Robert Osfield
2007-03-26 13:02:38 +00:00
parent 7013c12a0d
commit b419fa93ef
14 changed files with 127 additions and 69 deletions

View File

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