Spec-Zone.ru › CMake 3.12

export

Экспорт целей из дерева сборки для использования внешними проектами.

export(EXPORT <export-name> [NAMESPACE <namespace>] [FILE <filename>])

Создает файл <filename>, который может быть включен внешними проектами для импорта целей из дерева сборки текущего проекта. Это полезно при кросс-компиляции для создания служебных исполняемых файлов, которые могут работать на хост-платформе в одном проекте, а затем импортироваться в другой проект, компилируемый для целевой платформы. Если указан параметр NAMESPACE, строка <namespace> будет добавлена ​​ко всем именам целей, записанным в файл.

Установка целей связана с экспортом <export-name> с помощью параметра EXPORT команды install(TARGETS).

Файл, созданный этой командой, специфичен для дерева сборки и никогда не должен устанавливаться. См. команду install(EXPORT) для экспорта целей из дерева установки.

Свойства, установленные для созданных импортируемых целей, будут иметь те же значения, что и окончательные значения входных ЦЕЛЕЙ.

export(TARGETS [target1 [target2 [...]]] [NAMESPACE <namespace>]
       [APPEND] FILE <filename> [EXPORT_LINK_INTERFACE_LIBRARIES])

Эта сигнатура похожа на сигнатуру EXPORT, но цели перечислены явно, а не указаны как имя экспорта. Если указан параметр APPEND, сгенерированный код будет добавлен в файл, а не перезаписан. Ключевое слово EXPORT_LINK_INTERFACE_LIBRARIES, если присутствует, приводит к экспорту содержимого свойств, соответствующих (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?, когда политика CMP0022 имеет значение NEW. Если целевой объект библиотеки включен в экспорт, но целевой объект, с которым он связан, не включен, поведение не определено.

Примечание

Библиотеки объектов в Xcode имеют специальную обработку, если в CMAKE_OSX_ARCHITECTURES указано несколько архитектур. В этом случае они будут экспортироваться как Интерфейсные библиотеки без файлов объектов, доступных клиентам. Этого достаточно для удовлетворения требований транзитивного использования других целей, которые связывают библиотеки объектов в своей реализации.

export(PACKAGE <name>)

Сохраняет текущий каталог сборки в реестре пользовательских пакетов CMake для пакета <name>. Команда find_package может учитывать каталог при поиске пакета <name>. Это помогает зависимым проектам находить и использовать пакет из дерева сборки текущего проекта без помощи пользователя. Обратите внимание, что запись в реестре пакетов, создаваемая этой командой, работает только в сочетании с файлом конфигурации пакета (<name>Config.cmake), который работает с деревом сборки. В некоторых случаях, например, для упаковки и для общесистемных установок, запись в реестр пользовательских пакетов нежелательна. Если переменная CMAKE_EXPORT_NO_PACKAGE_REGISTRY включена, команда export(PACKAGE) ничего не будет делать.

export(TARGETS [target1 [target2 [...]]]  [ANDROID_MK <filename>])

Эта сигнатура экспортирует цели, созданные cmake, в систему сборки android ndk, создавая файл Android.mk, который ссылается на предварительно собранные цели. Android NDK поддерживает использование предварительно собранных библиотек, как статических, так и динамических. Это позволяет cmake создавать библиотеки проекта и делать их доступными для системы сборки ndk вместе с транзитивными зависимостями, флагами включения и определениями, необходимыми для использования библиотек. Сигнатура принимает список целей и помещает их в файл Android.mk, указанный параметром <filename>. Эта сигнатура может использоваться только в том случае, если политика CMP0022 имеет значение NEW для всех указанных целей. Если для одной из целей эта политика установлена в OLD, будет выдана ошибка.

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

Spec-Zone.ru

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