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。有关详细信息,请参阅其文档。