Meson 1.7.0建置系統版本已經發布,用於建置X.Org Server、Mesa、QEMU、Lighttpd、systemd、GStreamer、Wayland、GNOME和GTK等專案。 Meson 的程式碼是用 Python 編寫的,並根據 Apache 2.0 許可證獲得許可。
Meson 開發的主要目標是提供高速的組裝過程以及便利性和易用性。預設建置使用 Ninja 工具包,而不是 make 實用程序,但也可以使用其他後端,例如 Xcode 和 Visual Studio。系統有一個內建的多平台依賴處理程序,可讓您使用 Meson 建立分發包。彙編規則以簡化的特定於網域的語言指定,對於使用者來說具有高度的可讀性和可理解性(正如作者的意圖,開發人員應該花費最少的時間編寫規則)。
支援交叉編譯和彙編。 LinuxIllumos/Solaris、FreeBSD、NetBSD、DragonFly BSD、Haiku、 macOS и Windows Meson 支援使用 GCC、Clang、Visual Studio 等編譯器。專案可以用多種程式語言構建,包括 C、C++、Fortran、Java 和 Rust。它支援增量建置模式,該模式僅重新建置與上次建置後所做的變更直接相關的元件。 Meson 可用於建立可重複的構建,在不同的環境中運行構建將產生完全相同的可執行檔。
Meson 1.7的主要創新點:
- 新增了「dependency('atomic')」構造來檢查是否存在具有 C++ 原子操作的原子庫。
- 新增了新的程式語言「Linear Asm」(TI asm 方言,由 TI C6000 編譯器支援)。
- 新增了對 Rust 2024 語言版本 (rust_std=2024) 的支持,該問題將在 Rust 1.85.0 編譯器的版本中修復。
- 新增了對用於 Tricore CPU 系列的 TASKING VX-Toolset 編譯器的支援。
- 新增了為 Rust 專案執行 Clippy lint 程式的功能。
- 當您為 Cargo 配置依賴項時,請確保定義了整個依賴項樹和所有可用功能。該操作是在為子項目產生AST(抽象語法樹)之前的階段執行的,這樣就消除了子項目忽略主項目透過「default_options」參數啟用的選項的問題。
- external_project 模組提供 PATH 和 LD_LIBRARY_PATH 環境變數的設置,以便正確啟動程式。
- 新增了對「format」命令的「stdin」參數的支持,以從標準輸入而不是檔案讀取資料。
- 現在執行“介子測試”預設不會觸發完整建置(不會觸發“ninja all”),並且“ninja all”不會重建所有測試。
- vcs_tag() 指令現在支援「install」、「install_dir」、「install_tag」和「install_mode」參數來安裝產生的檔案。
- 新增了 MESON_NUM_PROCESSES 環境變數來反映執行平行建置的子進程的數量。例如,該變數可以在介子測試、external_project 模組以及執行 clang-tidy、clang-format 和 Clippy 的 Ninja 處理程序中使用。
來源: opennet.ru
