Spec-Zone.ru › CMake 3.18

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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.18/command/define_property.html

Spec-Zone.ru

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