Spec-Zone.ru › CMake 3.28

set_property

Установите именованное свойство в заданном контексте.

set_property(<GLOBAL                      |
              DIRECTORY [<dir>]           |
              TARGET    [<target1> ...]   |
              SOURCE    [<src1> ...]
                        [DIRECTORY <dirs> ...]
                        [TARGET_DIRECTORY <targets> ...] |
              INSTALL   [<file1> ...]     |
              TEST      [<test1> ...]
                        [DIRECTORY <dir>] |
              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().

Значения свойств тестов могут быть заданы с помощью generator expressions для тестов, созданных с помощью add_test(NAME).

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

DIRECTORY <dir>

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

CACHE

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

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

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

Примечание

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

См. также

  • define_property()
  • get_property()
  • Справочник cmake-properties(7) для списка свойств в каждом контексте.

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

Spec-Zone.ru

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