diff options
author | Cyril Boucher <cyril.boucher@sensefly.com> | 2018-09-05 16:15:37 +0200 |
---|---|---|
committer | Cyril Boucher <cyril.boucher@sensefly.com> | 2018-09-06 09:32:56 +0200 |
commit | 192e552099fcfbb30009db9d4284a04bb779231a (patch) | |
tree | cc178cd86de38ea6963d525f056725a99f713457 /Modules | |
parent | 0878a79414d4b7a0a24162c7365f188dba4a9bd4 (diff) | |
download | cmake-192e552099fcfbb30009db9d4284a04bb779231a.tar.gz |
FindOpenSceneGraph: Fix find in Debug
As of now, it is not possible to find OpenSceneGraph in Debug because the only
variable find_package_handle_standard_args is checking is ${module}_LIBRARY
while the debug library is in ${module}_LIBRARY_DEBUG. The refactoring gets rid
of the old behaviour to replace with a call to select_library_configurations
which will populated ${module}_LIBRARY accordingly.
[Modules/Findosg_functions.cmake Modules/FindOpenThreads.cmake]
- Include SelectLibraryConfigurations module
- Modify the name of the variable that will be populated by the first
find_library to ${MODULE}_LIBRARY_RELEASE so that SelectLibraryConfigurations
can act on it
- Add call to select_library_configurations after attempting to find libraries
in debug and release
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindOpenThreads.cmake | 12 | ||||
-rw-r--r-- | Modules/Findosg_functions.cmake | 22 |
2 files changed, 13 insertions, 21 deletions
diff --git a/Modules/FindOpenThreads.cmake b/Modules/FindOpenThreads.cmake index a197e4d2b3..91545e0ea5 100644 --- a/Modules/FindOpenThreads.cmake +++ b/Modules/FindOpenThreads.cmake @@ -47,6 +47,8 @@ # standard install paths. # Explicit -DVAR=value arguments should still be able to override everything. +include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) + find_path(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread HINTS ENV OPENTHREADS_INCLUDE_DIR @@ -62,7 +64,7 @@ find_path(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread ) -find_library(OPENTHREADS_LIBRARY +find_library(OPENTHREADS_LIBRARY_RELEASE NAMES OpenThreads OpenThreadsWin32 HINTS ENV OPENTHREADS_LIBRARY_DIR @@ -93,13 +95,7 @@ find_library(OPENTHREADS_LIBRARY_DEBUG PATH_SUFFIXES lib ) -if(OPENTHREADS_LIBRARY_DEBUG) - set(OPENTHREADS_LIBRARIES - optimized ${OPENTHREADS_LIBRARY} - debug ${OPENTHREADS_LIBRARY_DEBUG}) -else() - set(OPENTHREADS_LIBRARIES ${OPENTHREADS_LIBRARY}) -endif() +select_library_configurations(OPENTHREADS) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenThreads DEFAULT_MSG diff --git a/Modules/Findosg_functions.cmake b/Modules/Findosg_functions.cmake index 60de726e13..adaeb6b1d1 100644 --- a/Modules/Findosg_functions.cmake +++ b/Modules/Findosg_functions.cmake @@ -13,6 +13,8 @@ # libraries and nodekits. Please see FindOpenSceneGraph.cmake for full # documentation. +include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) + # # OSG_FIND_PATH # @@ -39,7 +41,7 @@ endfunction() function(OSG_FIND_LIBRARY module library) string(TOUPPER ${module} module_uc) - find_library(${module_uc}_LIBRARY + find_library(${module_uc}_LIBRARY_RELEASE NAMES ${library} HINTS ENV ${module_uc}_DIR @@ -63,18 +65,12 @@ function(OSG_FIND_LIBRARY module library) PATH_SUFFIXES lib ) - if(NOT ${module_uc}_LIBRARY_DEBUG) - # They don't have a debug library - set(${module_uc}_LIBRARY_DEBUG ${${module_uc}_LIBRARY} PARENT_SCOPE) - set(${module_uc}_LIBRARIES ${${module_uc}_LIBRARY} PARENT_SCOPE) - else() - # They really have a FOO_LIBRARY_DEBUG - set(${module_uc}_LIBRARIES - optimized ${${module_uc}_LIBRARY} - debug ${${module_uc}_LIBRARY_DEBUG} - PARENT_SCOPE - ) - endif() + select_library_configurations(${module_uc}) + + # the variables set by select_library_configurations go out of scope + # here, so we need to set them again + set(${module_uc}_LIBRARY ${${module_uc}_LIBRARY} PARENT_SCOPE) + set(${module_uc}_LIBRARIES ${${module_uc}_LIBRARIES} PARENT_SCOPE) endfunction() # |