Spec-Zone.ru › CMake 3.18

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)

Использовать foo_debug путь для 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}"
  )

Использовать foo_release путь для 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}"
  )

Использовать Release версию библиотеки для MinSizeRel и RelWithDebInfo типов сборки:

set_target_properties(foo PROPERTIES
  MAP_IMPORTED_CONFIG_MINSIZEREL Release
  MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  )

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.12/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API