获取属性¶
获得财产。
get_property(<variable>
<GLOBAL |
DIRECTORY [<dir>] |
TARGET <target> |
SOURCE <source>
[DIRECTORY <dir> | TARGET_DIRECTORY <target>] |
INSTALL <file> |
TEST <test> |
CACHE <entry> |
VARIABLE >
PROPERTY <name>
[SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
从范围内的一个对象获取一个属性。
第一个参数指定存储结果的变量。第二个参数确定从中获取属性的范围。它必须是以下之一:
全球范围是唯一的,不接受名称。
目录作用域默认为当前目录,但另一个目录(已由 CMake 处理)可能由完整或相对路径命名为“<dir>”。相对路径被视为相对于当前源目录。另请参阅
get_directory_property()命令。在 3.19 版本加入:
<dir>可以引用一个二进制目录。目标范围必须命名一个现有目标。另请参阅
get_target_property()命令。来源范围必须命名一个源文件。默认情况下,将从当前源目录的范围读取源文件的属性。
在 3.18 版本加入: 可以使用以下子选项之一覆盖目录范围:
目录<目录>源文件属性将从
<dir>目录的范围中读取。 CMake 必须已经知道目录,或者通过调用添加它:command:add_subdirectory 或``<dir>`` 作为顶级目录。相对路径被视为相对于当前源目录。在 3.19 版本加入:
<dir>可以引用一个二进制目录。TARGET_DIRECTORY <目标>源文件属性将从创建``<target>``的目录范围中读取(因此``<target>``必须已经存在)。
另请参阅
get_source_file_property()命令。安装在 3.1 版本加入.
范围必须命名一个已安装的文件路径。
测试范围必须命名一个现有的测试。另请参阅
get_test_property()命令。缓存范围必须命名一个缓存条目。
变量范围是唯一的,不接受名称。
所需的 PROPERTY 选项紧跟在要获取的属性的名称之后。如果未设置该属性,则返回一个空值,尽管某些属性支持从父作用域继承(如果定义为那样)(请参阅:command:define_property)。
如果给出了 SET 选项,变量将被设置为一个布尔值,指示该属性是否已被设置。如果给出了 DEFINED 选项,变量将被设置为一个布尔值,指示该属性是否已被定义,例如使用 define_property 命令。
如果给出了``BRIEF_DOCS`` 或``FULL_DOCS``,那么该变量将被设置为一个字符串,其中包含所请求属性的文档。如果为尚未定义的属性请求文档,则返回“NOTFOUND”。
备注
GENERATED 源文件属性可能是全局可见的。有关详细信息,请参阅其文档。