mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 07:11:05 -06:00
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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user