Spec-Zone.ru › CMake 3.13

add_executable

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

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

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

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

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

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

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

Аргументы исходных файлов для add_executable могут использовать "генераторские выражения" с синтаксисом $<...>. См. руководство cmake-generator-expressions(7) для доступных выражений. См. руководство 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 целевые объекты могут использоваться в качестве целевых объектов для чтения свойств, исполняемых файлов для пользовательских команд и пользовательских целевых объектов. Они также могут быть проверены на существование с помощью обычной подкоманды if(TARGET). <name> не может использоваться для изменения свойств <target>, то есть не может использоваться в качестве операнда команд set_property(), set_target_properties(), target_link_libraries() и т. д. Целевой объект-псевдоним ALIAS не может быть установлен или экспортирован.

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

Spec-Zone.ru

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