發布 Meson 0.58 組裝系統。 用 C 語言創建 Meson 實現的項目

Meson 0.58 構建系統版本已經發布,用於構建 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 0.58的主要創新點:

  • Meson 有內建的字串格式化操作。 現在您可以直接取代值,而不是呼叫 format 方法,例如,您可以立即指定“f”,而不是“'A string @0@ to be formatted @1@'.format(n, m)”要格式化的字串@n@ @ m@'"。
  • 字串物件中新增了「replace」方法,用於執行將一個子字串替換為另一個子字串的操作,例如「s = s.replace('aaa', 'bbb')」。
  • 新增了「range(start, stop[, step])」函數以傳回可在 foreach 迴圈中使用的對象,例如「foreach i : range(15)」。
  • 已實作 meson.add_devenv() 方法,可讓您在使用「meson devenv」指令時新增environment()物件來設定環境變量,例如設定插件目錄路徑的環境變數。
  • 對於開發環境,提出了一個新命令:「meson devenv -C builddir [<command>],這使得可以在配置為從建置目錄啟動專案的環境中執行該命令(無需安裝)。
  • 預設情況下,執行所有支援的編譯器時將停止傳遞“-pipe”選項。
  • 允許從子項目呼叫 meson.add_dist_script() 。
  • 提供了在同一個environment()物件上多次運行append()和prepend()方法的能力。
  • error() 函數允許多個參數,以空格分隔(類似 warning() 和 message())。
  • 新增了“--skip-subprojects”選項以選擇性地跳過子項目的安裝。

另外,我們可以注意到 Boson 項目,旨在創建 Meson 彙編腳本語言的可移植且簡單的實現,用 C 而不是 Python 編寫。 該專案仍處於開發的初始階段,尚未準備好全面組裝工作項目。 程式碼根據 GPLv3 獲得許可(原始 Python Meson 根據 Apache 2.0 許可證獲得許可)。

來源: opennet.ru

添加評論