CMake的configure_file指令

CMake中configure_file函数详解
本文介绍了CMake中configure_file函数,其作用是将文件复制到另一位置并按规则修改内容,即替换输入文件中被@VAR@或${VAR}引用的变量值。还阐述了该函数的其他选项,如COPYONLY、ESCAPE_QUOTES等,通常输入文件以.h.in为后缀,输出文件以.h为后缀,最后提到使用execute_process调用shell命令或脚本。

https://blog.youkuaiyun.com/qq_38410730/article/details/103741579

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

官方CMake教程对它的解释是:将文件复制到另一个位置并修改其内容。

当然,这里的修改其内容也不是任意地修改,也是遵循一定的规则:将input文件复制到output文件,并在输入文件内容中的变量,替换引用为@VAR@或${VAR}的变量值。每个变量引用将替换为该变量的当前值,如果未定义该变量,则为空字符串。

可能有些绕头,再浅显一点:configure_file,复制一份输入文件到输出文件,替换输入文件中被@VAR@或者${VAR}引用的变量值。也就是说,让普通文件,也能使用CMake中的变量。
configure_file的其他选项:

  • COPYONLY:只拷贝文件,不进行任何的变量替换。这个选项在指定了NEWLINE_STYLE选项时不能使用(无效)。
  • ESCAPE_QUOTES:躲过任何的反斜杠(C风格)转义。
  • @ONLY:限制变量替换,让其只替换被@VAR@引用的变量(那么 ${VAR}格式的变量将不会被替换)。这在配置${VAR}语法的脚本时是非常有用的。
  • NEWLINE_STYLE style:指定输出文件中的新行格式。UNIX和LF的新行是\n,DOS和WIN32和CRLF的新行格式是\r\n。这个选项在指定了COPYONLY选项时不能使用(无效)。

通常情况下,输入文件以.h.in为后缀,输出文件以.h为后缀。

使用execute_process调用shell命令或脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值