Spec-Zone.ru › CMake 3.30

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

Spec-Zone.ru

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