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