cmake:get_cmake_property、get_directory_property、get_property、get_filename_component 超、凢脫俗 2022-10-12 00:44 133阅读 0赞 # 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>必须已经存在)。 * 请参见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)命令中可用。不推荐使用的命令
还没有评论,来说两句吧...