配置檔案

將檔案複製到另一個位置並修改其內容。

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 一起使用。