介子構建系統版本 0.52

發表 建置系統發布 介子0.52,用於建立 X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME 和 GTK+ 等專案。介子程式碼是用 Python 寫的 提供 在 Apache 2.0 下獲得許可。

Meson 開發的主要目標是提供高速的組裝過程以及便利性和易用性。預設建置使用工具包,而不是 make 實用程式 忍者,但也可以使用其他後端,例如 xcode 和 VisualStudio。系統有一個內建的多平台依賴處理程序,可讓您使用 Meson 建立分發包。彙編規則以簡化的特定於網域的語言指定,對於使用者來說具有高度的可讀性和可理解性(正如作者的意圖,開發人員應該花費最少的時間編寫規則)。

支持的 使用 GCC、Clang、Visual Studio 和其他編譯器在 Linux、Illumos/Solaris、FreeBSD、NetBSD、DragonFly BSD、Haiku、macOS 和 Windows 上交叉編譯和建置。可以使用各種程式語言建立項目,包括 C、C++、Fortran、Java 和 Rust。支援增量建置模式,其中僅重建與上次建置以來所做的變更直接相關的元件。 Meson 可用於產生可重複的構建,其中在不同的環境中運行構建會產生完全相同的可執行檔。

主要的 創新 介子0.52:

  • 新增了使用 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

添加評論