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
  )