zoukankan      html  css  js  c++  java
  • CMake 11 配置文件

    CMake通过以下指令来赋值一个文件到指定地方,并可修改这个文件的内容,即配置文件。

    修改的内容为输入文件中以@VAR@或${VAR}指定的CMake变量占位符,占位符被相应变量的内容替换:

    configure_file(<input> <output>

                   [COPYONLY] [ESCAPE_QUOTES] [@ONLY]

                   [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])

    <input>:要复制的文件,如果用的是相对路径,则基于CMAKE_CURRENT_SOURCE_DIR目录

    <output>:要复制的目标,可以指定文件名或目录,如果是已经存在的目录,则用<input>的文件名,如果用相对路径来指定,则基于CMAKE_CURRENT_BINARY_DIR目录

    COPYONLY:原封不动的复制文件不做任何变量替换

    ESCAPE_QUOTES:回避反斜杠转义,即C风格的转义

    @ONLY:只替换@VAR@的变量,${VAR}的不作替换

    NEWLINE_STYLE:输出文件中换行的方式,UNIX和LF是 ,DOS、WIN32和CRLF是以 换行。因为输出文件与输入文件内容有变动,所以不能与COPYONLY一起使用。

    几种替换说明:

    1 输入文件中的内容为: #cmakedefine VAR …

    如果VAR被定义,替换的内容为 #define VAR …

    如果VAR未被定义,则替换为 /* #undef VAR */

    2输入文件中的内容为:#cmakedefine01 VAR

    如果VAR被定义,替换的内容为 #define VAR 1,

    否则替换的内容为 #define VAR 0

    3 ESCAPE_QUOTES的使用

    输入文件中的内容为 “@QUOTE@”,

    CMAKEList.txt有定义: set(QUOTE “”bb””),如果不使用ESCAPE_QUOTES,则输入文件中的占位符被替换为””bb””,如果使用则为””bb””

  • 相关阅读:
    asp.net mvc异常处理的不同方法
    获取计算机网络信息,包含IP,MAC
    MessageBox页面消息弹出框类
    centos7.4离线安装.NETCore3.1 环境
    .NET Core 3.0 WebApi 使用Swagger
    android隐藏apk方式以及apk之间的启动方式
    react native 更改项目包名
    react native windows下打包apk流程
    CentOS7下安装Redis
    EFCore配置多对多关系
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/13904578.html
Copyright © 2011-2022 走看看