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_DOCSFULL_DOCS,则变量设置为一个字符串,其中包含请求属性的文档。如果为未定义的属性请求文档,则返回 NOTFOUND

注意

GENERATED 源文件属性可能是全局可见的。 有关详细信息,请参阅其文档。

参见