Spec-Zone.ru › CMake 3.22

add_executable

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

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

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

add_executable(<name> [WIN32] [MACOSX_BUNDLE]
               [EXCLUDE_FROM_ALL]
               [source1] [source2 ...])

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

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

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

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

Если WIN32 задано, свойство WIN32_EXECUTABLE будет установлено для созданного целевого объекта. Подробнее см. документацию этого свойства целевого объекта.

Если MACOSX_BUNDLE задано, соответствующее свойство будет установлено для созданного целевого объекта. Подробнее см. документацию свойства целевого объекта MACOSX_BUNDLE.

Если EXCLUDE_FROM_ALL задано, соответствующее свойство будет установлено для созданного целевого объекта. Подробнее см. документацию свойства целевого объекта EXCLUDE_FROM_ALL.

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

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

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

add_executable(<name> IMPORTED [GLOBAL])

Целевой объект импортированного исполняемого файла ссылается на исполняемый файл, расположенный вне проекта. Правила для его построения не генерируются, и свойство целевого объекта IMPORTED True. Имя целевого объекта имеет область видимости в каталоге, в котором оно создано, и ниже, но опция GLOBAL расширяет видимость. К нему можно обращаться, как к любому целевому объекту, созданному внутри проекта. Импортированные исполняемые файлы IMPORTED полезны для удобного обращения из команд, таких как 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 нельзя устанавливать или экспортировать.

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

Spec-Zone.ru

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