Spec-Zone.ru › CMake 3.31

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, что делать, если некоторые исходные файлы предварительно обрабатываются, и вы хотите иметь доступ к исходным файлам в 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: Псевдоним может ссылаться на импортированную цель

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

ALIAS цели могут быть использованы в качестве целей для чтения свойств, исполняемых файлов для пользовательских команд и пользовательских целей. Их также можно проверить на существование с помощью обычной подкоманды 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.31/command/add_executable.html

Spec-Zone.ru

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