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}"
  )

对于 MinSizeRelRelWithDebInfo 构建类型,使用库的 Release 版本

set_target_properties(foo PROPERTIES
  MAP_IMPORTED_CONFIG_MINSIZEREL Release
  MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  )