Spec-Zone.ru › CMake 3.21

set_property

Установите свойство с заданным именем в заданном объеме.

set_property(<GLOBAL                      |
              DIRECTORY [<dir>]           |
              TARGET    [<target1> ...]   |
              SOURCE    [<src1> ...]
                        [DIRECTORY <dirs> ...] |
                        [TARGET_DIRECTORY <targets> ...]
              INSTALL   [<file1> ...]     |
              TEST      [<test1> ...]     |
              CACHE     [<entry1> ...]    >
             [APPEND] [APPEND_STRING]
             PROPERTY <name> [<value1> ...])

Устанавливает одно свойство для одного или нескольких объектов в области.

Первый аргумент определяет область, в которой устанавливается свойство. Он должен быть одним из следующих:

GLOBAL

Область уникальна и не принимает имя.

DIRECTORY

По умолчанию область соответствует текущей директории, но другие директории (уже обработанные CMake) могут быть указаны полным или относительным путем. Относительные пути обрабатываются относительно текущей директории исходного кода. См. также команду set_directory_properties().

Введено в версии 3.19: <dir> может ссылаться на бинарную директорию.

TARGET

Область может указывать ноль или более существующих целей. См. также команду set_target_properties().

SOURCE

Область может указывать ноль или более файлов исходного кода. По умолчанию свойства файлов исходного кода видны только для целей, добавленных в той же директории (CMakeLists.txt).

Введено в версии 3.18: Видимость может быть установлена в других областях директорий, используя один или оба следующих подварианта:

DIRECTORY <dirs>...

Свойство файла исходного кода будет установлено в каждой из областей директорий <dirs>. CMake должен уже знать о каждой из этих директорий, либо добавив их с помощью вызова add_subdirectory(), либо это корневая директория исходного кода. Относительные пути обрабатываются относительно текущей директории исходного кода.

Введено в версии 3.19: <dirs> может ссылаться на бинарную директорию.

TARGET_DIRECTORY <targets>...

Свойство файла исходного кода будет установлено в каждой из областей директорий, где был создан любой из указанных <targets> (директории <targets> должны поэтому уже существовать).

См. также команду set_source_files_properties().

INSTALL

Введено в версии 3.1.

Область может указывать ноль или более путей к установленным файлам. Они предоставляются CPack для влияния на развертывание.

И ключ, и значение свойства могут использовать выражения генератора. Конкретные свойства могут применяться к установленным файлам и/или директориям.

Компоненты пути должны быть разделены прямыми слешами, быть нормализованными и регистрозависимыми.

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

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

TEST

Область может указывать ноль или более существующих тестов. См. также команду set_tests_properties().

CACHE

Область должна указать ноль или более существующих записей кэша.

Требуемый PROPERTY опция сразу за ней следует имя свойства, которое нужно установить. Остальные аргументы используются для составления значения свойства в виде списка, разделенного точкой с запятой.

Если APPEND опция задана, список добавляется к любому существующему значению свойства (за исключением пустых значений, которые игнорируются и не добавляются). Если APPEND_STRING опция задана, строка добавляется к любому существующему значению свойства как строка, т.е. она приводит к более длинной строке, а не к списку строк. При использовании APPEND или APPEND_STRING со свойством, определенным для поддержки INHERITED поведения (см. define_property()), наследование не происходит при поиске начального значения для добавления. Если свойство еще не установлено напрямую в указанной области, команда будет вести себя так, как будто APPEND или APPEND_STRING не были заданы.

См. руководство cmake-properties(7) для списка свойств в каждой области.

Примечание

Свойство файла исходного кода GENERATED может быть глобально видимым. Подробности см. в его документации.

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

Spec-Zone.ru

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