1. 程式人生 > >CMake 手冊詳解(一)

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選項,那麼命令會顯示每個變數的幫助資訊。

=========================================================================