Spec-Zone.ru › CMake 3.28

get_property

Получение свойства.

get_property(<variable>
             <GLOBAL             |
              DIRECTORY [<dir>]  |
              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().

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 параметр сразу же следует за именем свойства для получения. Если свойство не установлено, возвращается пустое значение, хотя некоторые свойства поддерживают наследование из родительской области видимости, если это определено таким образом (см. define_property()).

Если задан параметр SET, переменная устанавливается в булевое значение, указывающее, было ли свойство установлено. Если задан параметр DEFINED, переменная устанавливается в булевое значение, указывающее, было ли свойство определено, например, с помощью команды define_property().

Если задан BRIEF_DOCS или FULL_DOCS, переменная устанавливается в строку, содержащую документацию для запрашиваемого свойства. Если запрашивается документация для свойства, которое не было определено, возвращается NOTFOUND.

Примечание

Свойство исходного файла GENERATED может быть глобально видимым. Подробности см. в документации.

См. также

  • define_property()
  • set_property()

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.28/command/get_property.html

Spec-Zone.ru

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