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