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
  )