merlinzjl

导航

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是\n,DOS、WIN32和CRLF是以\r\n换行。因为输出文件与输入文件内容有变动,所以不能与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”\”

 

 

posted on 2020-10-30 22:19  merlinzjl  阅读(450)  评论(0编辑  收藏  举报