FindIce: Support finding both release and debug libraries
Search for both release and debug library variants, and use SelectLibraryConfigurations to choose the appropriate library. Also add both release and debug libraries to the imported targets.
This commit is contained in:
parent
83ae79442c
commit
86bcdbcde5
|
@ -360,12 +360,20 @@ function(_Ice_FIND)
|
|||
foreach(component ${Ice_FIND_COMPONENTS})
|
||||
string(TOUPPER "${component}" component_upcase)
|
||||
set(component_cache "Ice_${component_upcase}_LIBRARY")
|
||||
set(component_cache_release "${component_cache}_RELEASE")
|
||||
set(component_cache_debug "${component_cache}_DEBUG")
|
||||
set(component_found "${component_upcase}_FOUND")
|
||||
find_library("${component_cache}" "${component}"
|
||||
find_library("${component_cache_release}" "${component}"
|
||||
HINTS ${ice_roots}
|
||||
PATH_SUFFIXES ${ice_library_suffixes}
|
||||
DOC "Ice ${component} library")
|
||||
mark_as_advanced("${component_cache}")
|
||||
DOC "Ice ${component} library (release)")
|
||||
find_library("${component_cache_debug}" "${component}d"
|
||||
HINTS ${ice_roots}
|
||||
PATH_SUFFIXES ${ice_library_suffixes}
|
||||
DOC "Ice ${component} library (debug)")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
select_library_configurations(Ice_${component_upcase})
|
||||
mark_as_advanced("${component_cache_release}" "${component_cache_debug}")
|
||||
if(${component_cache})
|
||||
set("${component_found}" ON)
|
||||
list(APPEND Ice_LIBRARY "${${component_cache}}")
|
||||
|
@ -438,6 +446,8 @@ if(Ice_FOUND)
|
|||
foreach(_Ice_component ${Ice_FIND_COMPONENTS})
|
||||
string(TOUPPER "${_Ice_component}" _Ice_component_upcase)
|
||||
set(_Ice_component_cache "Ice_${_Ice_component_upcase}_LIBRARY")
|
||||
set(_Ice_component_cache_release "Ice_${_Ice_component_upcase}_LIBRARY_RELEASE")
|
||||
set(_Ice_component_cache_debug "Ice_${_Ice_component_upcase}_LIBRARY_DEBUG")
|
||||
set(_Ice_component_lib "Ice_${_Ice_component_upcase}_LIBRARIES")
|
||||
set(_Ice_component_found "${_Ice_component_upcase}_FOUND")
|
||||
set(_Ice_imported_target "Ice::${_Ice_component}")
|
||||
|
@ -445,9 +455,29 @@ if(Ice_FOUND)
|
|||
set("${_Ice_component_lib}" "${${_Ice_component_cache}}")
|
||||
if(NOT TARGET ${_Ice_imported_target})
|
||||
add_library(${_Ice_imported_target} UNKNOWN IMPORTED)
|
||||
set_target_properties(${_Ice_imported_target} PROPERTIES
|
||||
IMPORTED_LOCATION "${${_Ice_component_cache}}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Ice_INCLUDE_DIR}")
|
||||
if()
|
||||
set_target_properties(${_Ice_imported_target} PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Ice_INCLUDE_DIR}")
|
||||
endif()
|
||||
if(EXISTS "${${_Ice_component_cache}}")
|
||||
set_target_properties(${_Ice_imported_target} PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${${_Ice_component_cache}}")
|
||||
endif()
|
||||
if(EXISTS "${${_Ice_component_cache_debug}}")
|
||||
set_property(TARGET ${_Ice_imported_target} APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(${_Ice_imported_target} PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
|
||||
IMPORTED_LOCATION_DEBUG "${${_Ice_component_cache_debug}}")
|
||||
endif()
|
||||
if(EXISTS "${${_Ice_component_cache_release}}")
|
||||
set_property(TARGET ${_Ice_imported_target} APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(${_Ice_imported_target} PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||
IMPORTED_LOCATION_RELEASE "${${_Ice_component_cache_release}}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
unset(_Ice_component_upcase)
|
||||
|
|
Loading…
Reference in New Issue