Meson 開發的主要目標是提供高速的組裝過程以及便利性和易用性。預設建置使用工具包,而不是 make 實用程式
主要的
- 新增了使用 Emscripten 作為編譯器的 Webassemble 的實驗性支援;
- 對 Illumos 和 Solaris 平台的支援已顯著改進並進入工作狀態;
- 確保如果系統沒有安裝 gettext 工具包,則忽略基於 gettext 的國際化腳本(先前在沒有安裝 gettext 的系統上使用 i18n 模組時會顯示錯誤);
- 改進了對靜態庫的支援。解決了使用已卸載的靜態庫時出現的許多問題;
- 新增了使用字典分配環境變數的功能。當呼叫environment()時,現在可以將第一個元素指定為字典,其中環境變數以鍵/值形式定義。這些變數將被傳輸到environment_object,就像它們是透過set()方法單獨設定的一樣。現在也可以將字典傳遞給支援「env」參數的各種函數;
- 新增了函數“runtarget alias_target(target_name, dep1, ...)”,該函數會建立一個新的第一級建置目標,可以使用選定的建置後端來呼叫該目標(例如“ninja target_name”)。此建置目標不執行任何命令,但確保建置所有依賴項;
- 如果「[properties]」部分中有 sys_root 設定,則在交叉編譯期間啟用 PKG_CONFIG_SYSROOT_DIR 環境變數的自動設定;
- 新增了「--gdb-path」選項,用於在指定「--gdb testname」選項以指定的測試腳本執行GDB時確定GDB偵錯器的路徑;
- 新增了對 clang-tidy 建置目標的自動偵測,以使用所有來源檔案執行此 linter。如果系統中存在 clang-tidy 且在專案根目錄中定義了「.clang-tidy」(或「_clang-tidy」)文件,則建立目標;
- 新增了用於 Clang 擴展的依賴項('blocks')
吹氣梢 ; - 連結器和編譯器視圖是分開的,允許使用編譯器和連結器的不同組合;
- 除了 all_sources() 方法之外,還向 SourceSet 物件新增了 all_dependency() 方法;
- 在 run_project_tests.py 中,新增了「--only」選項來選擇性地執行測試(例如,「python run_project_tests.py —only fortran python3」);
- find_program() 函數現在能夠只搜尋程式所需的版本(版本是透過使用「-version」選項來執行程式來決定的);
- 為了控制符號的導出,在shared_module()函式中加入了vs_module_defs選項,類似於shared_library();
- kconfig 模組已擴充為支援用於指定輸入檔的configure_file();
- 為configure_file()新增了為「command:」處理程序指定多個輸入檔案的功能;
- 用於建立存檔的「dist」指令已移至第一級指令類別(先前該指令與 ninja 相關)。新增了「--formats」選項來定義要建立的存檔類型(例如,
“介子 dist -formats=xztar,zip”)。
來源: opennet.ru