get_cmake_property
获取CMake实例的全局属性。
get_cmake_property(<var> <property>)
从CMake实例获取全局属性。< property >的值存储在变量< var >中。如果未找到属性,< var >将设置为NOTFOUND。有关可用属性,请参见cmake-properties(7)手册。
请参见get_property()命令全局选项。
除了全局属性之外,这个命令(出于历史原因)还支持VARIABLES和MACROS目录属性。它还支持一个特殊的COMPONENTS全局属性,该属性列出了提供给install()命令的组件。
get_directory_property
获取DIRECTORY作用域的属性。
get_directory_property(<variable> [DIRECTORY <dir>] <prop-name>)
将目录范围的属性存储在命名的< variable>中。
DIRECTORY参数指定从其中检索属性值的另一个目录,而不是当前目录。相对路径被视为相对于当前源目录。CMake必须已经知道这个目录,要么是通过调用add_subdirectory()添加它,要么是作为顶级目录。
3.19新版功能:< dir >可以引用二进制目录。
如果未为指定的目录范围定义该属性,则返回一个空字符串。对于INHERITED属性,如果指定目录范围内没有找到该属性,则搜索将链接到define_property()命令中描述的父范围。
get_directory_property(<variable> [DIRECTORY <dir>]
DEFINITION <var-name>)
从目录中获取变量定义。这种形式对于从另一个目录获取变量定义很有用。
另请参阅更通用的get_property()命令。
get_property
得到一个属性。
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])
从作用域中的一个对象获取一个属性。
第一个参数指定用于存储结果的变量。第二个参数确定获取属性的范围。它必须是以下之一:
- GLOBAL:
- 作用域是惟一的,不接受名称。
- DIRECTORY :
- 作用域默认为当前目录,但另一个目录(已由CMake处理)可以用完整路径或相对路径< dir>命名。相对路径被视为相对于当前源目录。请参见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>必须已经存在)。
- DIRECTORY < dir>:
- 请参见get_source_file_property()命令。
- INSTALL:
- 3.1新版功能。
- 作用域必须命名一个已安装的文件路径。
- TEST:范围必须命名一个现有的测试。请参见get_test_property()命令。
- CACHE:作用域必须命名一个缓存项。
- VARIABLE:作用域是惟一的,不接受名称。
必需的PROPERTY选项后面紧跟着要获取的属性的名称。如果未设置属性,则返回空值,但如果定义为从父作用域继承,则某些属性支持从父作用域继承(参见define_property())。
如果给定SET选项,则变量将设置为布尔值,指示是否已设置属性。如果给定DEFINED选项,则将变量设置为一个布尔值,指示是否定义了该属性,例如使用define_property()命令。
如果给出了BRIEF_DOCS或FULL_DOCS,那么变量将被设置为一个包含所请求属性的文档的字符串。如果为尚未定义的属性请求文档,则返回NOTFOUND。
get_filename_component
获取完整文件名的特定组件。
在3.19版更改:该命令已被cmake_path()命令取代,除了REALPATH现在由file(REAL_PATH)命令提供,而PROGRAM现在在separate_arguments(PROGRAM)命令中可用。不推荐使用的命令