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
作用域默认为当前目录,但可以由完整或相对路径
<dir>
命名另一个目录(已由 CMake 处理)。相对路径被视为相对于当前源目录。另请参阅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
选项紧跟要获取的属性名称。如果属性未设置,则在返回时,命名变量 <variable>
将在调用作用域中未设置,尽管某些属性支持从父作用域继承(如果定义为那样行为)(请参阅 define_property()
)。
如果给定 SET
选项,则变量将设置为布尔值,指示属性是否已设置。如果给定 DEFINED
选项,则变量将设置为布尔值,指示属性是否已定义,例如使用 define_property()
命令。
如果给定 BRIEF_DOCS
或 FULL_DOCS
,则变量将设置为一个字符串,其中包含请求属性的文档。如果为未定义的属性请求文档,则返回 NOTFOUND
。
注意
GENERATED
源文件属性可能是全局可见的。详情请参阅其文档。