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). Псевдоним не может использоваться для изменения свойств <target>, то есть он не может использоваться в качестве операнда команд set_property(), set_target_properties(), target_link_libraries() и т. д. Целевой объект-псевдоним не может быть установлен или экспортирован.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/command/add_executable.html