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
  )