Spec-Zone.ru › CMake 3.30

add_executable

  • Обычные исполняемые файлы
  • Импортированные исполняемые файлы
  • Исполняемые файлы-псевдонимы
  • См. также

Добавляет исполняемый файл в проект, используя указанные исходные файлы.

Обычные исполняемые файлы

add_executable(<name> <options>... <sources>...)

Добавляет целевой исполняемый файл, названный <name>, который будет скомпилирован из исходных файлов, перечисленных в вызове команды.

Доступные параметры:

WIN32

Автоматически задает свойство цели WIN32_EXECUTABLE. Подробности см. в документации этого свойства цели.

MACOSX_BUNDLE

Автоматически задает свойство цели MACOSX_BUNDLE. Подробности см. в документации этого свойства цели.

EXCLUDE_FROM_ALL

Автоматически задает свойство цели EXCLUDE_FROM_ALL. Подробности см. в документации этого свойства цели.

<name> соответствует логическому имени целевого файла и должно быть уникальным в пределах проекта. Фактическое имя сгенерированного исполняемого файла строится на основе соглашений для родной платформы (например, <name>.exe или просто <name>).

Новое в версии 3.1: Аргументы исходных файлов для add_executable могут использовать «генераторские выражения» со синтаксисом $<...>. См. руководство cmake-generator-expressions(7) для доступных выражений.

Новое в версии 3.11: Исходные файлы можно опустить, если они будут добавлены позже с помощью target_sources().

По умолчанию исполняемый файл будет создан в каталоге сборки, соответствующем каталогу исходного кода, в котором была вызвана команда. См. документацию свойства цели RUNTIME_OUTPUT_DIRECTORY для изменения этого расположения. См. документацию свойства цели OUTPUT_NAME для изменения части <name> окончательного имени файла.

См. руководство cmake-buildsystem(7) для получения дополнительной информации о настройке свойств системы сборки.

См. также HEADER_FILE_ONLY о том, что делать, если некоторые исходные файлы предварительно обработаны, и вам нужны исходные файлы, доступные из среды разработки.

Импортированные исполняемые файлы

add_executable(<name> IMPORTED [GLOBAL])

Добавляет целевого исполняемого файла-импорта для ссылки на исполняемый файл, расположенный вне проекта. Имя целевого файла может использоваться так же, как и имя любого скомпилированного целевого файла в проекте, за исключением того, что по умолчанию он виден только в каталоге, где он был создан, и в подкаталогах.

Доступные параметры:

GLOBAL

Сделать имя целевого файла глобально доступным.

Для импортированных целей не генерируются правила компиляции, и свойство цели IMPORTED имеет значение True. Импортированные исполняемые файлы полезны для удобной ссылки из команд, таких как add_custom_command().

Подробности импортированного исполняемого файла задаются с помощью свойств, имена которых начинаются с IMPORTED_. Наиболее важное из них — IMPORTED_LOCATION (и его версия для каждой конфигурации IMPORTED_LOCATION_<CONFIG>), которое указывает расположение основного исполняемого файла на диске. Подробнее о свойствах IMPORTED_* см. в документации.

Исполняемые файлы-псевдонимы

add_executable(<name> ALIAS <target>)

Создает цель-псевдоним, при которой <name> может быть использовано для ссылки на <target> в последующих командах. <name> не появляется в сгенерированной системе сборки как цель make. <target> может быть не ALIAS.

Новое в версии 3.11: Псевдоним может ссылаться на импортированную цель.

Новое в версии 3.18: Псевдоним может ссылаться на не-GLOBAL импортированную цель. Такой псевдоним ограничен каталогом его создания и подкаталогами. Свойство цели ALIAS_GLOBAL можно использовать для проверки глобальности псевдонима.

Целевые файлы-псевдонимы могут использоваться в качестве целей для чтения свойств, исполняемых файлов для пользовательских команд и пользовательских целей. Их также можно проверить на существование с помощью обычной подкоманды if(TARGET). <name> не может быть использован для изменения свойств <target>, то есть, он не может быть использован в качестве операнда set_property(), set_target_properties(), target_link_libraries() и т.д. Цель-псевдоним не может быть установлена или экспортирована.

См. также

  • add_library()

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

Spec-Zone.ru

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