cmake

  • CMake 為「cross platform make」的縮寫,是開放原始碼的跨平台的自動化建置系統。可以讓我們的使用者更容易把程式建構於不同的平台. CMake 並不直接建構出最終的軟體,而是依照平台、編譯器產生標準的建構檔(如 Unix Makefile 或 Microsoft Visual Studio 的 projects/workspaces),然後再依一般的建置方式使用。和標準的 GNU 開發工具相比,CMake 的角色比 Make 更高階,比較接近 Autotools,而且支援多種不同的平台與編譯器。

簡單的範例

  • 資料夾下有兩個檔案:
    • main.c
    • CMakeLists.txt
// main.c
#include <stdio.h>

int main(){
    printf("hello world. \n");
}

// CMakeList.txt
# cmake最低版本限制
cmake_minimum_required (VERSION 2.6)

# 產生的執行檔名稱
project(ex1)
add_executable(ex1 main.c)
  • 在資料夾下輸入 cmake . ,其中.代表current directory,然後會產生相對應的Makefile檔,之後再輸入 make 即產生可執行檔 ex1。
    • 如果其它的作業系統下,可指定要產生的Makefile格式如下:
    • cmake -G "Unix Makefiles"
    • cmake -G "MSYS Makefiles"
    • cmake -G "Visual Studio 9 2008"
    • 可用的generator列表

語法簡介

  • CMake 的語法非常單純,由指令(command)和注解所組成,所有的空白、換行、tab 都沒有特殊作用,僅為語彙元素的區隔。
  • 凡是由 # 字元開頭一直到換行字元間的內容皆會被視為注解,不會有任何作用。
  • 指令為指令名稱加上小括弧,括弧內可以有零或若干個參數,指令則依照出現在 CMakeLists 當中的循序執行。所有指令名稱大小寫都一視同仁,例如 Command、COMMAND 皆視為同一個指令。
  • 在撰寫 CMakeLists 時可以使用變數(Variable)儲存資料,嚴格說起來 CMake 只有字串和串列兩種資料形態,數值和布林值本質上只是帶有特殊意義的字串。變數大小寫不同視為相異,內建的變數都必須要全大寫。

參考資料

results matching ""

    No results matching ""