1 FILE(GLOB <variable>
2       [LIST_DIRECTORIES true|flase]) [RELETIVE <path>] [CONFIGURE_DEPENDS]
3       [<globbing-expressions>...])
4 FILE(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS]
5       [LIST_DIRECTORIES true|flase] [RELETIVE <path>] [CONFIGURE_DEPENDS]
6       [<globbing-expressions>...]))

该指令的作用是产生一个匹配 <globbing-expressions> 的文件列表并将它存到变量 <variable> 中。文件名替代表达式和正则表达式相似,但更简单。如果 RELATIVE 标志位被设定,将返回指定路径的相对路径。结果按字典顺序排序。
如果 CONFIGURE_DEPENDS 标志位被指定,CMake将在编译时给主构建系统添加逻辑来检查目标,以重新运行 GLOB 标志的命令。 如果任何输出被改变,CMake都将重新生成这个构建系统。

注意:不推荐使用GLOB来从源文件数手机源文件列表。如果当源文件添加或删除时没有CMakeList.txt文件被修改,那么在CMake重新生成时并不会识别出它们。 CONFIGURE_DEPENDS 标志位可能不会在所有生成器上可靠地工作,如果一个新的生成器在以后被添加,并不会被支持,如果项目使用它将会被卡住。即使 CONFIGURE_DEPENDS 可靠地工作,在每个重新构建的过程中做检查也十分浪费性能。

文件名替代表达式的使用示例如下:

*.cxx               - 匹配所有后缀名为cxx的文件
*.vt?               - 匹配所有后缀名为vta,...,vtz的文件
f[3-5].txt          - 匹配f3.txt,f4.txt.f5.txt文件

GLOB_RECURSE 将会递归所有匹配文件夹的子文件夹和匹配的文件。子文件夹为符号链接时只有当 FOLLOW_SYMLINKS 被指定或规则 CMP0009 没有设置为 NEW 时才会被递归 。

默认 GLOB_RECURSE 省略结果列表中的目录,设置 LIST_DIRECTORIES 为 true 来添加目录到结果列表中。如果 FOLLOW_SYMLINKS 被指定或规则 CMP0009 没有设置为 OLD 。LIST_DIRECTORIES 将符号链接作为路径。

递归文件名包括的例子如下:

/dir/*.py                - 匹配所有python文件,在/dir 目录及其子目录中

 

file(RENAME <oldname> <newname>) 

在文件系统中从 <oldname> 移动文件或文件夹到 <newname> ,自动替换目标路径

 

file(REMOVE [<files>...])
file(REMOVE_RECURSE [<files>...])

移动指定文件, REMOVE_RECURSE 模式将移动给定文件、文件夹(非空)。如果指定文件不存在不会报错。

file(MAKE_DIRECTORY [<directories>...])

创建给定文件夹,闭关根据需求创建其父文件夹。

file(<COPY|INSTALL> <files>... DESTINATION <dir>
     [FILE_PERMISSIONS <permissions>...]
     [DIRECTORY_PERMISSIONS <permissions>...]
     [NO_SOURCE_PERMISSIONS] [USE_SOURCE_PERMISSIONS]
     [FILES_MATCHING]
     [[PATTERN <pattern> | REGEX <regex>]
      [EXCLUDE] [PERMISSIONS <permissions>...]] [...])

COPY 表示复制文件、路径和符号链接到目标路径。以相对当前源文件路径计算输入路径的相对路径,以相对当前构建路径计算目标路径。复制保留输入文件时间戳,文件如果存在目标路径且时间戳相同,会对其进行优化。复制保留输入文件访问权限,除非明确权限或指定 NO_SOURCE_PERMISSIONS (默认 USE_SOURCE_PERMISSIONS) 。

查看install(DIRECTORY)命令了解文件权限,FILES_MATCHING, PATTERN,REGEXEXCLUDE 选项。

INSTALL 选项和 COPY 略有不同:它打印状态信息(根据 CMAKE_INSTALL_MESSAGE)变量,默认为 NO_SOURCE_PERMISSIONS 选项。安装脚本使用 install() 命令产生,install()命令使用了 INSTALL 选项并附带一些内部选项供内部使用。

原文地址:http://www.cnblogs.com/jdi-2022/p/16867252.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性