get_property
Получить свойство.
get_property(<variable>
<GLOBAL |
DIRECTORY [<dir>] |
TARGET <target> |
FILE_SET <file_set> TARGET <target> |
SOURCE <source>
[DIRECTORY <dir> | TARGET_DIRECTORY <target>] |
INSTALL <file> |
TEST <test>
[DIRECTORY <dir>] |
CACHE <entry> |
VARIABLE>
PROPERTY <name>
[SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
Получает одно свойство одного объекта в области видимости.
Первый аргумент задаёт переменную, в которой следует сохранить результат. Второй аргумент определяет область видимости, из которой нужно получить свойство. Он должен иметь одно из следующих значений:
-
GLOBAL -
Область видимости уникальна, имя не принимается.
-
DIRECTORY -
По умолчанию областью видимости является текущий каталог, но можно указать другой каталог (уже обработанный CMake) с помощью полного или относительного пути
<dir>. Относительные пути считаются относительно текущего исходного каталога. См. также командуget_directory_property().Добавлено в версии 3.19:
<dir>может ссылаться на двоичный каталог. -
TARGET -
Область видимости должна указывать на существующую цель. См. также команду
get_target_property(). -
FILE_SET -
Добавлено в версии 4.3.
Область видимости должна указывать на существующий набор файлов.
Необходим следующий параметр:
-
TARGET <target> -
Цель, к которой прикреплён набор файлов.
-
-
SOURCE -
Область видимости должна указывать на исходный файл. По умолчанию свойство исходного файла считывается из области видимости текущего исходного каталога.
Добавлено в версии 3.18: Область видимости каталога может быть переопределена одним из следующих дополнительных параметров:
-
DIRECTORY <dir> -
Свойство исходного файла будет считано из области видимости каталога
<dir>. CMake уже должен знать об этом каталоге: он должен быть добавлен вызовомadd_subdirectory()либо<dir>должен быть каталогом верхнего уровня. Относительные пути считаются относительно текущего исходного каталога.Добавлено в версии 3.19:
<dir>может ссылаться на двоичный каталог. -
TARGET_DIRECTORY <target> -
Свойство исходного файла будет считано из области видимости каталога, в котором был создан
<target>(поэтому<target>уже должен существовать).
См. также команду
get_source_file_property(). -
-
INSTALL -
Добавлено в версии 3.1.
Область видимости должна указывать на путь к установленному файлу.
-
TEST -
Область видимости должна указывать на существующий тест. См. также команду
get_test_property().Добавлено в версии 3.28: Область видимости каталога можно переопределить с помощью следующего дополнительного параметра:
-
DIRECTORY <dir> -
Свойство теста будет считано из области видимости каталога
<dir>. CMake уже должен знать об этом каталоге: он должен быть добавлен вызовомadd_subdirectory()либо<dir>должен быть каталогом верхнего уровня. Относительные пути считаются относительно текущего исходного каталога.<dir>может ссылаться на двоичный каталог.
-
-
CACHE -
Область видимости должна указывать на запись в кэше.
-
VARIABLE -
Область видимости уникальна, имя не принимается.
После обязательного параметра PROPERTY сразу указывается имя свойства, которое нужно получить. Если свойство не задано, при возврате из команды именованная переменная <variable> будет удалена в вызывающей области видимости, хотя некоторые свойства поддерживают наследование из родительской области видимости, если для них задано такое поведение (см. define_property()).
Если указан параметр SET, переменной присваивается логическое значение, указывающее, задано ли свойство. Если указан параметр DEFINED, переменной присваивается логическое значение, указывающее, определено ли свойство, например, с помощью команды define_property().
Если указан BRIEF_DOCS или FULL_DOCS, переменной присваивается строка с документацией для запрошенного свойства. Если документация запрошена для неопределённого свойства, возвращается NOTFOUND.
Примечание
Свойство исходного файла GENERATED может быть глобально видимым. Подробности см. в документации к этому свойству.
См. также
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/get_property.html