meson构建系统
簡介
Meson是一個構建系統,它被設計成在不犧牲性能的前提下盡可能的友好。這方面的主要工具是用戶用來描述構建結構的自定義語言。這種語言的主要設計目標是簡單、清晰和簡潔。很多靈感都來自于Python編程語言,它被認為是非常易讀的,即使對以前沒有使用Python編程的人來說也是如此。
另一個主要想法是為現代編程工具和最佳實踐提供一流的支持。這些特性包括單元測試、代碼覆蓋報告、預編譯頭等等。所有這些功能應該立即可用的任何項目使用Meson。用戶不應該需要尋找第三方宏或編寫shell腳本來獲得這些特性。它們應該是開箱即用的。
這種能力不應該以犧牲有限的實用性為代價。許多軟件的構建需要非正統的步驟。一個常見的例子是,你首先需要建立一個自定義的工具,然后用這個工具來生成更多的源代碼來構建。這種功能需要得到支持,并且要像系統的其他部分一樣容易使用。
注:以上簡介機翻自meson官網
簡明使用
本部分針對那些基于meson build的項目,記錄一些meson的基礎命令
-
編譯項目
-
setup 1
使用meson build的項目在源碼根目錄都能看到一個名為“meson.build”的文件,此文件規定了構建項目的規則
在meson下要求要指定一個單獨的build目錄,這樣在編譯過程中產生的中間文件不會污染源代碼目錄,使用以下命令創建build目錄并初始化編譯
meson build命令執行后會自動探測環境、探測編譯器,創建一個名為“build”的構建目錄,并生成后續compile所需要的文件,如下圖所示
-
setup 2
接下來就要comple項目了,對于meson版本>0.55.0的可以直接使用以下命令進行編譯
meson compile -C build對于低于此版本的meson使用以下命令進行編譯
ninja -C build
-
-
編譯時的一些選項
meson默認編譯出來的目標文件是release版本的,也就是沒有debug信息,這樣在項目開發時調試很麻煩,使用以下命令配置meson build debug版本的目標文件
meson build --buildtype debug如果已經執行過meson的話使用上條命令會報錯,使用以下命令重新配置
meson build --buildtype debug --reconfigurebuildtype 有以下幾種
valuemeaning plain no extra build flags are used, even for compiler warnings debug 帶有debug信息,沒有優化 debugoptimized 帶有debug信息,有優化 release 無debug信心,有優化 在有些情況下需要自己添加一些gcc的flag,可以使用以下命令
meson build -Dc_args=... -Dcpp_args=... -Dc_link_args=... -Dcpp_link_args=... -
test、install
對于有unit test的項目可以使用以下命令來運行test
meson test -C build需要安裝當前編譯出來的項目可以使用以下命令,安裝的目錄可以在meson setup時指定
meson build meson --prefix /usr meson compile -C build meson install -C buildsetup時忘了指定–prefix也可以使用以下命令來指定
DESTDIR=/usr meson install -C build
編寫meson構建腳本
待續
總結
- 上一篇: MIPS内联汇编
- 下一篇: ajaxForm和ajaxSubmit实