cmake configure_file在编写比较复杂的工程构建时经常用到,通常时将一个输入文件input 拷贝到指定位置并生成output,简单命令格式为:

configure_file(input output options)
  • input: 为输入的文件,可以带相对路径
  • output:输出文件,可以带相对路径
  • option为在copy过程中根据实现需要进行选择主要由以下几个选择:

COPYONLY: 完全不动的,将input文件拷贝到output文件中,不做任何修改

@ONLY: 将input文件中使用@VAR@或者${VAR}标识的变量值,给替换调,如果变量在configure_file之前未定义,则未空字符

ESCAPE_QUOTES: 躲过任何反斜杠(C风格)转义

NEWLINE_STYLE <style>: 具体指定输出文件的换行格式,在UNIXLF中使用’\n‘换行,在DOS、WIN32 或者CRLF中使用’\r\n‘换行。 所以style可以指定为UNIX、LF、DOS、WIN32 或者CRLF。

configure_file 命令行最全格式为:

configure_file(<input> <output>[NO_SOURCE_PERMISSIONS | USE_SOURCE_PERMISSIONS |FILE_PERMISSIONS <permissions>...][COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])

NO_SOURCE_PERMISSIONS:是cmake 3.19版本之后新添加的,主要意思是output文件不采用input的文件权限,使用默认标准权限为644(-rw-r--r-);

USE_SOURCE_PERMISSIONS: 是cmake 3.20新添加的,主要是output文件采用源文件input的文件权限,默认是采用源文件权限。

FILE_PERMISSIONS <permissions>: cmake 3.20之后新添加功能,主要是指定输出的output文件权限。

CMake configure_file命令相关推荐

  1. 【使用CMake组织C++工程】2:CMake 常用命令和变量

    前言 前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量.对于涉及到的命令和变 ...

  2. CMake常用命令整理

    CMake常用命令整理 转自:https://zhuanlan.zhihu.com/p/315768216 CMake 是什么我就不用再多说什么了,相信大家都有接触才会看一篇文章.对于不太熟悉的开发人 ...

  3. CMake 常用命令和变量

    前言 前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量.对于涉及到的命令和变 ...

  4. CMake | include_guard命令详解

    目录 一.命令详解 二.简单使用 1.CMakeLists.txt 2.cmake/custom.cmake 3.配置 三.为低于3.10的版本自定义"包含保护"机制 1.cmak ...

  5. cmake:命令行工具cmake

    概要 Generate a Project Buildsystemcmake [<options>] <path-to-source>cmake [<options> ...

  6. CMake常用命令(五)add_executable命令 生成可执行文件

    文章目录 语法 作用 举例 1. 普通可执行目标文件 语法 作用 参数 举例 1. 基础用法 2. EXCLUDE_FROM_ALL参数用法 2. 导入可执行目标文件 语法 作用 参数 举例 3. 别 ...

  7. CMake常用命令总结

    1.首先用cmake_minimum_required (VERSION 3.14.1)指定所需cmake的最小版本. 2.project(name CXX C)指定工程名称,这个会影响PROJECT ...

  8. cmake通过命令行构建静态库/动态库

    指定编译为动态库 -DBUILD_SHARED_LIBS=true 指定编译位置 -DCMAKE_INSTALL_PREFIX=/home

  9. cmake 常用命令

    1. 使用日期 # 获取时间 string(TIMESTAMP DATE_TIME "%y-%m-%d %H:%M")# 获取日期 string(TIMESTAMP DATE_VE ...

最新文章

  1. 影像组学视频学习笔记(24)-文献导读:了解88种降维、分类器组合、Li‘s have a solution and plan.
  2. tomcat9配置https-pfx
  3. Android:阻止输入法将图片压缩变形
  4. 教师节,收到学生的礼物和祝福,开心
  5. ssl1063-统计数字【哈希表】
  6. 1835财务报表分析
  7. C++ #include iostream #include iostream.h #include string.h区别及作用
  8. 自然科学期刊能发表计算机论文吗,福建交通科技杂志发表论文能评职称吗
  9. 回顾一年的工作历程_回顾一年来的工作
  10. 前端html与css学习笔记总结篇
  11. 第 7 章. 缓冲区资源,渲染通道,帧缓冲区以及使用 SPIR-V 的着色器
  12. 小程序URL Scheme规则调整支持方案
  13. Heterogeneous Treatment Effect
  14. java中什么是空指针异常_JAVA中的空指针异常如何处理?
  15. java json字符串转JSONObject对象、转JAVA对象、转List<T>对象
  16. 计算机桌面文件夹删除如何找回,被误删(永久删除、彻底删除)的文件如何找回?...
  17. LTI连续系统零状态响应求解
  18. linux :ubuntu 实用软件
  19. 智能家用洗地机哪个牌子好?实际好用的家用洗地机推荐
  20. 2021-09-25 在uniapp中 打包成app调用地图 提示 uni.authorize is not a function 怎么办 (图文详解)

热门文章

  1. 阿里技术专家:进击的 Java ,云原生时代的蜕变
  2. Jeecg-P3 1.0.1版本发布,轻量级微服务框架
  3. 七步从AngularJS菜鸟到专家(4和5):指令和表达式
  4. UI标签库专题九:JEECG智能开发平台 Choose(选则操作标签)
  5. 深度-图像风格变换【二】
  6. Mac 实现keras网络模型可视化【conda】
  7. Servlet - 会话跟踪
  8. 速查mysql数据大小
  9. Java替代C语言的可能性
  10. win7下node.js设置npm环境变量