介子構建系統版本 1.1

Meson 1.1.0 構建系統版本已經發布,用於構建 X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME 和 GTK 等項目。 Meson 代碼是用 Python 編寫的,並在 Apache 2.0 許可下獲得許可。

Meson 的主要開發目標是提供一種結合便利性和易用性的高速組裝過程。 默認情況下,構建使用 Ninja 工具包而不是 make,但也可以使用其他後端,例如 xcode 和 VisualStudio。 該系統有一個內置的多平台依賴處理程序,允許您使用 Meson 為分發構建包。 彙編規則以簡化的領域特定語言設置,它們對用戶來說具有很好的可讀性和理解性(根據作者的想法,開發人員應該花最少的時間來編寫規則)。

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

Meson 1.1的主要創新點:

  • 新的“對象:”參數已添加到 declare_dependency() 以將對像作為不需要 link_who 的內部依賴項直接附加到可執行文件。
  • “meson devenv --dump”命令可以選擇指定一個文件來寫入環境變量,而不是輸出到標準輸出流。
  • 添加了 FeatureOption.enable_if 和 FeatureOption.disable_if 方法,以便更輕鬆地創建條件,為將參數傳遞給 dependency() 函數做準備。 opt = get_option('feature').disable_if(not foo, error_message : '當 foo 未啟用時無法啟用功能') dep = dependency('foo', required : opt)
  • 允許在“對象:”參數之間傳遞生成的對象。
  • 項目功能支持安裝包含項目許可證信息的文件。
  • 執行“sudo meson install”可確保在目標平台重建期間重置權限。
  • “meson install”命令提供了為獲取 root 權限指定單獨處理程序的能力(例如,您可以選擇 polkit、sudo、opendoas 或 $MESON_ROOT_CMD)。 在非交互模式下運行“meson install”不再嘗試提升權限。
  • 添加了對從 meson.options 文件而不是 meson_options.txt 中讀取選項的支持。
  • 將有關內省進度的信息輸出重定向到 stderr。
  • 添加了一個新的“無”後端 (--backend=none) 以創建只有安裝規則而沒有構建規則的項目。
  • 添加了一個新的依賴項 pybind11 以使依賴項('pybind11')在不使用 pybind11-config 腳本的情況下與 pkg-config 和 cmake 一起工作。
  • “--reconfigure”和“--wipe”選項(meson setup --reconfigure builddir 和 meson setup --wipe builddir)允許使用空的 builddir。
  • meson.add_install_script() 添加了對 dry_run 關鍵字的支持,它允許您在調用“meson install --dry-run”時運行自己的安裝腳本。

來源: opennet.ru

添加評論