MAP_IMPORTED_CONFIG_<CONFIG>¶
从项目配置映射到导入目标的配置。
将其设置为导入目标的配置列表,这些配置可用于当前项目的 <CONFIG>
配置。 从另一个项目导入的目标可能不提供与当前项目相同的配置名称集。 设置此属性会告知 CMake,在构建 <CONFIG>
配置时,哪些导入的配置是适用的。 将选择列表中找到的由导入目标提供的第一个配置(即通过 IMPORTED_LOCATION_<CONFIG>
用于映射到 <CONFIG>
的配置)。 作为特殊情况,空列表元素指的是无配置的导入目标位置(即 IMPORTED_LOCATION
)。
如果设置了此属性且没有可用的匹配配置,则导入的目标将被视为未找到。 对于非导入目标,此属性将被忽略。
如果创建目标时设置了 CMAKE_MAP_IMPORTED_CONFIG_<CONFIG>
变量,则此属性会由该变量的值初始化。
示例¶
例如,创建导入的 C++ 库 foo
add_library(foo STATIC IMPORTED)
对于 Debug
构建类型,使用 foo_debug
路径
set_property(
TARGET foo APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG
)
set_target_properties(foo PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
IMPORTED_LOCATION_DEBUG "${foo_debug}"
)
对于 Release
构建类型,使用 foo_release
路径
set_property(
TARGET foo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE
)
set_target_properties(foo PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
IMPORTED_LOCATION_RELEASE "${foo_release}"
)
对于 MinSizeRel
和 RelWithDebInfo
构建类型,使用 Release
版本的库
set_target_properties(foo PROPERTIES
MAP_IMPORTED_CONFIG_MINSIZEREL Release
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
)