CMake备忘单
file
file 命令用于执行各种文件和目录操作,例如创建目录、复制文件、读取文件内容等。它的功能非常强大,支持多种操作模式。
file常见用法
创建目录:
1
file(MAKE_DIRECTORY path1 path2 ...)
- 创建一个或多个目录。如果目录已存在,则不会报错。
复制文件:
1
file(COPY file1 file2 ... DESTINATION directory)
- 将文件从源路径复制到目标目录。
写入文件:
1
file(WRITE file "message to write")
- 将内容写入文件。如果文件已存在,则会覆盖原有内容。
追加内容到文件:
1
file(APPEND file "message to append")
- 将内容追加到文件末尾。
读取文件内容:
1
file(READ file variable)
- 将文件内容读取到变量中。
删除文件或目录:
1
2file(REMOVE file1 file2 ...)
file(REMOVE_RECURSE directory1 directory2 ...)- 删除文件或目录。
REMOVE_RECURSE可以递归删除目录及其内容。
- 删除文件或目录。
获取文件列表:
1
file(GLOB variable [RELATIVE path] [globbing expressions])
- 获取匹配特定模式的文件列表。
RELATIVE参数可以指定相对路径。
- 获取匹配特定模式的文件列表。
file示例
1 | # 创建目录 |
configure_file
configure_file 命令用于将文件从源路径复制到目标路径,并可以选择性地对文件内容进行变量替换。它常用于生成配置文件或复制资源文件。
configure_file常见用法
简单复制文件:
1
configure_file(source destination COPYONLY)
- 将源文件直接复制到目标路径,不进行任何处理。
变量替换:
1
configure_file(source destination)
- 将源文件复制到目标路径,并对文件中的变量进行替换。变量格式为
${VARIABLE_NAME}。
- 将源文件复制到目标路径,并对文件中的变量进行替换。变量格式为
指定文件权限:
1
configure_file(source destination [NEWLINE_STYLE style] [PERMISSIONS permissions...])
- 可以指定文件的换行风格(如
UNIX或WIN32)和权限。
- 可以指定文件的换行风格(如
configure_file示例
假设你有一个配置文件 config.in,内容如下:
1 | # config.in |
在 CMakeLists.txt 中,你可以这样使用 configure_file:
1 | # 设置变量 |
生成的 config.txt 文件内容将是:
1 | The value of MY_VARIABLE is Hello, CMake!. |