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