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: Псевдоним может ссылаться на импортированную цель ALIAS.
Добавлена в версии 3.18: Псевдоним может ссылаться на не-GLOBAL импортированную цель. Такой псевдоним ограничен каталогом, в котором он был создан, и подкаталогами. Свойство цели ALIAS_GLOBAL можно использовать для проверки, является ли псевдоним глобальным.
Целевые псевдонимы ALIAS могут использоваться как целевые файлы для чтения свойств, исполняемые файлы для пользовательских команд и пользовательских целей. Их также можно проверить на существование с помощью обычного подкоманды if(TARGET). Псевдоним <name> не может использоваться для изменения свойств <target>, то есть не может использоваться в качестве операнда set_property(), set_target_properties(), target_link_libraries() и т.д. Цель-псевдоним ALIAS не может быть установлена или экспортирована.
См. также
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/add_executable.html