cmake:get_cmake_property、get_directory_property、get_property、get_filename_component

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)命令中可用。不推荐使用的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值