Spec-Zone.ru › CMake 3.20

define_property

Определение и документирование пользовательских свойств.

define_property(<GLOBAL | DIRECTORY | TARGET | SOURCE |
                 TEST | VARIABLE | CACHED_VARIABLE>
                 PROPERTY <name> [INHERITED]
                 BRIEF_DOCS <brief-doc> [docs...]
                 FULL_DOCS <full-doc> [docs...])

Определяет одно свойство в области видимости для использования с командами set_property() и get_property(). Это в первую очередь полезно для связывания документации с именами свойств, которые могут быть получены с помощью команды get_property(). Первый аргумент определяет тип области видимости, в которой должно использоваться свойство. Он должен быть одним из следующих:

GLOBAL    = associated with the global namespace
DIRECTORY = associated with one directory
TARGET    = associated with one target
SOURCE    = associated with one source file
TEST      = associated with a test named with add_test
VARIABLE  = documents a CMake language variable
CACHED_VARIABLE = documents a CMake cache variable

Обратите внимание, что в отличие от set_property() и get_property(), не требуется указывать фактическую область видимости; важен только её тип.

Требуемый PROPERTY параметр сразу следует за именем определяемого свойства.

Если указан параметр INHERITED, то команда get_property() будет переходить к следующей более высокой области видимости, когда запрашиваемое свойство не установлено в данной области видимости.

  • DIRECTORY область видимости наследует свойства из родительского каталога, продолжая поиск вверх по родительским каталогам, пока свойство не будет найдено или пока не останется более родительских каталогов. Если свойство не найдено ни в одном из родительских каталогов, оно наследует свойства из GLOBAL области видимости.
  • TARGET, SOURCE и TEST свойства наследуют свойства из DIRECTORY области видимости, включая дальнейшее наследование вверх по каталогам и т.д., по мере необходимости.

Обратите внимание, что это поведение наследования области видимости применяется только к вызовам get_property(), get_directory_property(), get_target_property(), get_source_file_property() и get_test_property(). При установке свойств нет поведения наследования, поэтому использование APPEND или APPEND_STRING с командой set_property() не будет учитывать наследуемые значения при определении содержимого для добавления.

Параметры BRIEF_DOCS и FULL_DOCS следуют за строками, которые будут ассоциированы со свойством в качестве краткого и полного описания. Соответствующие параметры команды get_property() будут извлекать документацию.

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

Spec-Zone.ru

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