Spec-Zone.ru › CMake 3.15

export

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

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

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

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

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

Свойства, установленные на сгенерированных целевых объектах IMPORTED, будут иметь те же значения, что и конечные значения входных целевых объектов TARGETS.

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 <PackageName>)

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

По умолчанию команда export(PACKAGE) ничего не делает (см. политику CMP0090), потому что заполнение реестра пакетов пользователя имеет последствия за пределами исходных и сборных деревьев. Установите переменную CMAKE_EXPORT_PACKAGE_REGISTRY, чтобы добавить каталоги сборки в реестр пакетов CMake пользователя.

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

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

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

Spec-Zone.ru

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