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”\”