set_property
Установить свойство с заданным именем в заданном объеме.
set_property(<GLOBAL |
DIRECTORY [<dir>] |
TARGET [<target1> ...] |
SOURCE [<src1> ...]
[DIRECTORY <dirs> ...]
[TARGET_DIRECTORY <targets> ...] |
INSTALL [<file1> ...] |
TEST [<test1> ...] |
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). -
CACHE -
Область должна содержать ноль или более существующих записей кэша.
Требуемый PROPERTY параметр непосредственно следует за именем свойства для установки. Остальные аргументы используются для составления значения свойства в виде списка, разделенного точкой с запятой.
Если указан параметр APPEND, список добавляется к любому существующему значению свойства (за исключением того, что пустые значения игнорируются и не добавляются). Если указан параметр APPEND_STRING, строка добавляется к любому существующему значению свойства как строка, то есть это приводит к более длинной строке, а не к списку строк. При использовании APPEND или APPEND_STRING со свойством, определенным для поддержки INHERITED поведения (см. define_property()), наследование не происходит при поиске начального значения для добавления. Если свойство еще не установлено непосредственно в указанной области, команда будет вести себя так, как будто APPEND или APPEND_STRING не были указаны.
См. руководство cmake-properties(7) для списка свойств в каждой области.
Примечание
Свойство файла исходного кода GENERATED может быть глобально видимым. См. его документацию для получения подробностей.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.24/command/set_property.html