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
  )