CMake 手冊詳解(一)
公司的一個專案使用CMake作為跨平臺構建工具;業務有需求,當然要好好研讀一下官方的技術手冊。目前的計劃是先把官方手冊翻譯一下,瞭解清楚CMake中的各種命令、屬性和變數的用法。同時在工作中也會閱讀CMake的真實原始碼,後續會基於此陸續寫一些工程中使用CMake的心得。CMake的版本也在不停更新,有些新的命令和變數會隨著版本更新新增進來,這是後事了,暫且不管;現在鎖定CMake 2.8.3作為手冊翻譯的版本。
作為園子裡的新丁,文章在術語和表達等等方面會有欠缺的地方,還請大俠們慷慨指點。另外,羅馬不是一天建成的,長長的手冊翻譯完也不知道要經歷多少日升月落;不過還是希望自己能夠堅持下去:-)。
CMake2.8.3 主索引
- 命令名稱
- 用法
- 描述
- 命令選項
- 生成器
- 命令
- 屬性
- 全域性域屬性
- 目錄屬性
- 目標屬性
- 測試屬性
- 原始碼屬性
- Cache Entries屬性
- 相容性命令
- CMake 標準模組
- CMake策略
- 變數
- 改變行為的變數
- 描述系統的變數
- 語言變數
- 控制構建的變數
- 提供資訊的變數
- 版權
- 其他參考資料
命令名稱
cmake - 跨平臺Makefile生成工具。
用法
cmake [選項] <原始碼路徑>
cmake [選項] <現有構建路徑>
描述
cmake可執行程式是CMake的命令列介面。它可以用指令碼對工程進行配置。工程配置設定可以在命令列中使用-D選項指定。使用-i選項,cmake將通過提示互動式地完成該設定。
CMake是一個跨平臺的構建系統生成工具。它使用平臺無關的CMake清單檔案CMakeLists.txt,指定工程的構建過程;原始碼樹的每個路徑下都有這個檔案。CMake產生一個適用於具體平臺的構建系統,使用者使用這個系統構建自己的工程。
選項
-C <initial-cache>
: 預載入一個指令碼填充快取檔案。
當cmake在一個空的構建樹上第一次執行時,它會建立一個CMakeCache.txt檔案,然後向其中寫入可定製的專案設定資料。-C選項可以用來指定一個檔案,在第一次解析這個工程的cmake清單檔案時,從這個檔案載入快取的條目(cache entries)資訊。被載入的快取條目比專案預設的值有更高的優先權。引數中給定的那個檔案應該是一個CMake指令碼,其中包含有使用CACHE選項的SET命令;而不是一個快取格式的檔案。
-D <var>:<type>=<value>
: 建立一個CMake的快取條目。
當cmake第一次運行於一個空的構建數時,它會建立一個CMakeCache.txt檔案,並且使用可定製的工程設定來填充這個檔案。這個選項可以用來指定優先順序高於工程的預設值的工程設定值。這個引數可以被重複多次,用來填充所需要數量的快取條目(cache entries)。
-U <globbing_expr>
: 從CMake的快取檔案中刪除一條匹配的條目。
該選項可以用來刪除CMakeCache.txt檔案中的一或多個變數。檔名匹配表示式(globbing expression)支援萬用字元*和?的使用。該選項可以重複多次以刪除期望數量的快取條目。使用它時要小心,你可能因此讓自己的CMakeCache.txt罷工。
-G <generator-name>
: 指定一個makefile生成工具。
在具體的平臺上,CMake可以支援多個原生的構建系統。makefile生成工具的職責是生成特定的構建系統。可能的生成工具的名稱將在生成工具一節給出。
-Wno-dev
: 抑制開發者警告。
抑制那些為CMakeLists.txt檔案的作者準備的警告資訊。
-Wdev
: 使能開發者警告資訊輸出功能。
允許那些為CMakeLists.txt檔案的作者準備的警告資訊。
-E
: CMake命令列模式。
為了真正做到與平臺無關,CMake提供了一系列可以用於所有系統上的的命令。以-E引數執行CMake會幫助你獲得這些命令的用法。可以使用的命令有:chdir, copy, copy_if_different copy_directory, compare_files, echo, echo_append, environment, make_directory, md5sum, remove_directory, remove, tar, time, touch, touch_nocreate, write_regv,
delete_regv, comspec, create_symlink。
-i
: 以嚮導模式執行CMake。
嚮導模式是在沒有GUI時,互動式地執行cmake的模式。cmake會彈出一系列的提示,要求使用者回答關於工程配置的一行問題。這些答覆會被用來設定cmake的快取值。
-L[A][H]
: 列出快取的變數中的非高階的變數。
-L
選項會列出快取變數會執行CMake,並列出所有CMake的內有被標記為INTERNAL或者ADVANCED的快取變數。這會顯示當前的CMake配置資訊,然後你可以用-D選項改變這些選項。修改一些變數可能會引起更多的變數被創建出來。如果指定了A選項,那麼命令也會顯示高階變數。如果指定了H選項,那麼命令會顯示每個變數的幫助資訊。
=========================================================================