Meson ビルド システム リリース 1.0

Meson 1.0.0 ビルド システムのリリースが公開されました。これは、X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME、GTK などのプロジェクトのビルドに使用されます。 Meson コードは Python で書かれており、Apache 2.0 ライセンスに基づいてライセンスされています。

Meson の主な開発目標は、利便性と使いやすさを組み合わせた高速組み立てプロセスを提供することです。 デフォルトでは、ビルドでは make の代わりに Ninja ツールキットが使用されますが、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.0 の主な革新:

  • Rust 言語でプロジェクトを構築するためのモジュールは安定していると宣言されました。 このモジュールは、Rust で書かれたコンポーネントを構築するために Mesa プロジェクトで使用されます。
  • ほとんどのコンパイラ チェック関数でサポートされている prefix オプションは、文字列以外の配列を処理する機能を実装します。 たとえば、次のように指定できるようになりました: cc.check_header('GL/wglew.h', prefix : ['#include '、 '#含む'])
  • 新しい「--workdir」引数が追加され、作業ディレクトリをオーバーライドできるようになりました。 たとえば、作業ディレクトリの代わりに現在のディレクトリを使用するには、 meson devenv -C builddir --workdir を実行します。
  • 新しい演算子 "in" および "not in" は、配列または辞書内の要素の出現について以前から利用可能であったチェックと同様に、文字列内の部分文字列の出現を判定するために提案されています。 例: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • 利用可能なすべてのコンパイラ警告の出力をオンにする「warning-level=everything」オプションを追加しました (clang と MSVC では -Weverything と /Wall が使用され、GCC では個別の警告が含まれます。clang の -Weverything モードにほぼ対応します)。
  • Rust.bindgen メソッドは、コンパイラによって処理される必要がある依存関係へのパスを渡すために、「dependency」引数を処理する機能を実装します。
  • java.generate_native_headers 関数は非推奨となり、Meson の一般的な関数命名スタイルに合わせて java.native_headers に名前が変更されました。

出所: オープンネット.ru

コメントを追加します