file
: File manipulation command.file(WRITE filename "message to write"... )
file(APPEND filename "message to write"... )
file(READ filename variable [LIMIT numBytes] [OFFSET offset] [HEX])
file(STRINGS filename variable [LIMIT_COUNT num]
[LIMIT_INPUT numBytes] [LIMIT_OUTPUT numBytes]
[LENGTH_MINIMUM numBytes] [LENGTH_MAXIMUM numBytes]
[NEWLINE_CONSUME] [REGEX regex]
[NO_HEX_CONVERSION])
file(GLOB variable [RELATIVE path] [globbing expressions]...)
file(GLOB_RECURSE variable [RELATIVE path]
[FOLLOW_SYMLINKS] [globbing expressions]...)
file(REMOVE [file1 ...])
file(REMOVE_RECURSE [file1 ...])
file(MAKE_DIRECTORY [directory1 directory2 ...])
file(RELATIVE_PATH variable directory file)
file(TO_CMAKE_PATH path result)
file(TO_NATIVE_PATH path result)
file(DOWNLOAD url file [TIMEOUT timeout] [STATUS status] [LOG log])
WRITE : 向文件 'filename'中寫入一個信息. 存在則覆蓋,不存在則建立.python
APPEND :同 WRITE, 但會加到文件末尾正則表達式
READ :從文件中讀取信息到變量. 從 offset 開始讀取 numBytes bytes. 若是設定參數 HEX, 二進制數據將會轉成十六進制數據存到變量中.express
STRINGS : 解析文件中的一列ASCII 字符串存到一個變量中. 文件中二進制數據被忽略. 換行字符被忽略. 同時對 Intel Hex 和 Motorola S-record 文件有效, 讀取時候自動轉換成二進制形式. 使用 NO_HEX_CONVERSION 無效.windows
LIMIT_COUNT : 設定返回的最大字符串數目. LIMIT_INPUT :設定從輸入文件中讀取的最大byte數. LIMIT_OUTPUT :設定存入輸出變量中的最大byte數. LENGTH_MINIMUM :設定返回的最小字符串長度. 更短字符串被忽略. LENGTH_MAXIMUM :設定返回的最大字符串長度. 更長的字符串被切割. NEWLINE_CONSUME :容許字符串中包含換行符.url
REGEX :指定返回一個與正則表達式匹配的字符串. 使用形式 日誌
file(STRINGS myfile.txt myfile)
變量 "myfile"中存儲一張表 每一項對於輸入文件中的一行.code
GLOB :產生一張與全局表達式匹配的全部文件的表 並存入指定變量中. 全局表達式與正則表達式相似, 但更簡單. 若是 RELATIVE 被指定爲一個表達式, 結果將返回給定的路徑爲相對路徑ip
全局表達式有以下例子:字符串
*.cxx - 匹配全部後綴 cxx 的文件
*.vt? - 匹配全部後綴 vta,...,vtz 的文件
f[3-5].txt - 匹配 f3.txt, f4.txt, f5.txt
GLOB_RECURSE :與 GLOB 相似, 但會遍歷匹配路徑下面的全部子路徑並匹配文件. 只有當 FOLLOW_SYMLINKS 給定時,子路徑纔會當符號連接遍歷 或者cmake policy CMP0009 爲被設定爲 NEW. 參見 cmake --help-policy CMP0009 .it
recursive globbing 例子:
/dir/*.py - match all python files in /dir and subdirectories 匹配/dir中及子路徑中的全部python文件
MAKE_DIRECTORY : 建立給定路徑,若是父路徑不存在
REMOVE : 刪除給定文件,包括子路徑
REMOVE_RECURSE : 刪除給定文件和路徑,包括非空路徑
RELATIVE_PATH : 肯定路徑到肯定文件的相對路徑
TO_CMAKE_PATH :路徑轉換成cmake類型的路徑'/'.輸入能夠是一個簡單的路徑或是系統路徑"$ENV{PATH}".注意雙引號中的ENV調用TO_CMAKE_PATH只帶有一個參數。
TO_NATIVE_PATH :與 TO_CMAKE_PATH相似, 從cmake路徑形式轉換爲通常形式 windows'\' , UNIX'/' .
DOWNLOAD : 從給定URL中下載到給定文件. 若是 LOG 變量設定,下載日誌將會放入變量中. 若是STATUS 變量 被設定, 操做狀態將會放入變量中. 狀態以長度爲2的表返回. 第一個參數返回的是操做值, 第二個返回的是錯誤字符串. 0表示沒有錯誤. 若是 TIMEOUT time 設定, 操做在 time 秒後 超時, time 可設定爲float類型.