Spec-Zone.ru › CMake

set_property

Задать именованное свойство в указанной области видимости.

set_property({GLOBAL                                    |
              DIRECTORY [<dir>]                         |
              TARGET    <target>...                     |
              FILE_SET  <file_set>... TARGET <target>   |
              SOURCE    <source>...
                        [DIRECTORY <dirs> ...]
                        [TARGET_DIRECTORY <targets>...] |
              INSTALL   <file>...                       |
              TEST      <test>...
                        [DIRECTORY <dir>]               |
              CACHE     <entry>...}
             [APPEND] [APPEND_STRING]
             PROPERTY <name> [<value>...])

Задает одно свойство для нуля или нескольких объектов в области видимости.

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

GLOBAL

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

DIRECTORY

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

Добавлено в версии 3.19: <dir> может ссылаться на каталог сборки.

TARGET

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

Цели-псевдонимы не поддерживают установку свойств цели.

FILE_SET

Добавлено в версии 4.3.

Область видимости может содержать имена нуля или нескольких существующих наборов файлов.

Следующий параметр является обязательным:

TARGET <target>

Цель, к которой прикреплен набор файлов.

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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/set_property.html

Spec-Zone.ru

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