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}"
)
針對 MinSizeRel
和 RelWithDebInfo
建置類型使用 Release
版本的函式庫
set_target_properties(foo PROPERTIES
MAP_IMPORTED_CONFIG_MINSIZEREL Release
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
)