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