Spec-Zone.ru › CMake 3.29

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 можно использовать для проверки, является ли псевдоним глобальным или нет.

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

См. также

  • add_library()

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

Spec-Zone.ru

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