获取属性

获得财产。

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 源文件属性可能是全局可见的。有关详细信息,请参阅其文档。

也可以看看