Spec-Zone.ru › CMake

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. Чтобы изменить часть имени итогового файла <name>, см. документацию по свойству цели OUTPUT_NAME.

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

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

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

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: Цель ALIAS может ссылаться на GLOBAL импортированную цель.

Добавлено в версии 3.18: Цель ALIAS может ссылаться на импортированную цель, не являющуюся GLOBAL. Такая цель-псевдоним доступна только в каталоге, где она создана, и во вложенных каталогах. Чтобы проверить, является ли псевдоним глобальным, можно использовать свойство цели ALIAS_GLOBAL.

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

См. также

  • add_library()

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

Spec-Zone.ru

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