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