Spec-Zone.ru › CMake 3.29

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.29/command/set_property.html

Spec-Zone.ru

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