mirror of
https://github.com/reactos/CMake.git
synced 2024-11-23 11:39:48 +00:00
FindBoost: Tolerate future Boost INTERFACE libraries
Since commit 0dd6772a89
(FindBoost: Add legacy variables and targets for
compatibility, 2019-06-14, v3.15.0-rc2~3^2~1) we query imported targets
provided by `BoostConfig.cmake` for their `IMPORTED_LOCATION_<cfg>`.
Querying this property is not allowed on INTERFACE libraries, so add a
condition to avoid doing so in case Boost adds one in the future.
Suggested-by: Alexander Grund <alexander.grund@tu-dresden.de>
Issue: #19656, #19402
This commit is contained in:
parent
2d357b7a68
commit
907d3ed824
@ -353,14 +353,20 @@ function(_boost_set_legacy_variables_from_config)
|
||||
_boost_set_if_unset(Boost_${uppercomp}_LIBRARY "${target}")
|
||||
_boost_set_if_unset(Boost_${uppercomp}_LIBRARIES "${target}") # Very old legacy variable
|
||||
list(APPEND libraries "${target}")
|
||||
foreach(cfg RELEASE DEBUG)
|
||||
get_target_property(lib ${target} IMPORTED_LOCATION_${cfg})
|
||||
if(lib)
|
||||
get_filename_component(lib_dir "${lib}" DIRECTORY)
|
||||
list(APPEND library_dirs ${lib_dir})
|
||||
_boost_set_cache_if_unset(Boost_${uppercomp}_LIBRARY_${cfg} "${lib}")
|
||||
endif()
|
||||
endforeach()
|
||||
get_property(type TARGET "${target}" PROPERTY TYPE)
|
||||
if(NOT type STREQUAL "INTERFACE_LIBRARY")
|
||||
foreach(cfg RELEASE DEBUG)
|
||||
get_target_property(lib ${target} IMPORTED_LOCATION_${cfg})
|
||||
if(lib)
|
||||
get_filename_component(lib_dir "${lib}" DIRECTORY)
|
||||
list(APPEND library_dirs ${lib_dir})
|
||||
_boost_set_cache_if_unset(Boost_${uppercomp}_LIBRARY_${cfg} "${lib}")
|
||||
endif()
|
||||
endforeach()
|
||||
elseif(Boost_DEBUG OR Boost_VERBOSE)
|
||||
# For projects using only the Boost::* targets this warning can be safely ignored.
|
||||
message(WARNING "Imported target '${target}' for required component '${comp}' has no artifact. Legacy variables for this component might be missing. Refer to the documentation of your Boost installation for help on variables to use.")
|
||||
endif()
|
||||
_boost_get_canonical_target_name("${comp}" canonical_target)
|
||||
if(NOT TARGET "${canonical_target}")
|
||||
add_library("${canonical_target}" INTERFACE IMPORTED)
|
||||
|
Loading…
Reference in New Issue
Block a user