配置文件

将文件复制到另一个位置并修改其内容。

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

将文件复制到文件并替换文件内容中引用的变量值。如果是相对路径,则相对于当前源目录评估它。必须是文件,而不是目录。如果是相对路径,则相对于当前二进制目录评估它。如果将现有目录命名为输入文件,则将其原始名称放在该目录中。

如果文件被修改,构建系统将重新运行 CMake 以重新配置文件并再次生成构建系统。

此命令将引用为$ {VAR}或 @ VAR @的输入文件中的所有变量替换为由 CMake 确定的值。如果未定义变量,则将替换为空。如果指定了 COPYONLY,则不会发生变量扩展。如果指定了 ESCAPE_QUOTES,那么任何替换的引号都将被 C 样式转义。该文件将配置 CMake 变量的当前值。如果指定了 @ONLY,则只替换 @VAR @形式的变量,并忽略$ {VAR}。这对于配置使用$ {VAR}的脚本很有用。

“#cmakedefine VAR …”形式的输入文件行将替换为“#define VAR …”或/ * #undef VAR * /,具体取决于是否在 CMake 中将 VAR 设置为任何不被视为 false 的值常量由 if() 命令。 (如果有的话,“……”的内容如上所述进行处理。)“#cmakedefine01 VAR”形式的输入文件行将同样替换为“#define VAR 1”或“#define VAR 0”。

使用 NEWLINE_STYLE 可以调整行结尾:

'UNIX' or 'LF' for \n, 'DOS', 'WIN32' or 'CRLF' for \r\n.

COPYONLY 不得与 NEWLINE_STYLE 一起使用。