configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h")
configure_file:
将一份文件拷贝到另一个位置并修改它的内容
configure_file(<input> <output>
[COPYONLY] [ESCAPE_QUOTES] [@ONLY]
[NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
- 将 <input>里面的内容全部复制到
<output>
文件中 - 根据参数规则,替换
@VAR@
或${VAR}
变量
COPYONLY:仅拷贝
<input>
文件里面的内容到<output>
文件, 不进行变量的替换;复制文件而不替换任何变量引用或其他内容。ESCAPE_QUOTES:使用反斜杠(C风格)来进行转义。
@ONLY:限制替换, 仅仅替换
@VAR@
变量, 不替换${VAR}
变量;NEWLINE_STYLE <style>:指定输出文件的换行样式。例如,指定 UNIX使用的是 \n 换行,windos 使用的是 \r\n 换行。
注意:
COPYONLY
和NEWLINE_STYLE
是冲突的,不能同时使用;
左边为生成的Config.h文件,可以看到
- cmakedefine变为了define
- cmakdefine会根据变量的值是否为真进行相应的替换