Spec-Zone.ru › CMake 3.26

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 не может быть установлен или экспортирован.

См. также

  • add_library()

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

Spec-Zone.ru

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