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)

使用 foo_debug 路径用于 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}"
  )

使用 foo_release 路径用于 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}"
  )

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

set_target_properties(foo PROPERTIES
  MAP_IMPORTED_CONFIG_MINSIZEREL Release
  MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  )