Meson は、ソフトウェアの構築を自動化するためのソフトウェア ツールです。 Pythonで書かれた無料のオープンソースです。
Meson 1.0.0ビルドシステムの新バージョンが発表されました。このバージョンには、新機能に加え、Rustプロジェクトのコンパイルにおける安定性の向上などが含まれています。
Mesonについてよく知らない方のために説明すると、このビルドシステムは、X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME、GTKといった有名なプロジェクトのコンパイルに使用されています。
Meson の主な開発目標は、高速なコンパイル プロセスを便利さと使いやすさと組み合わせて提供することです。 代わりに、ビルドはデフォルトで Ninja Toolkit を使用しますが、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の主な新機能
Meson 1.0 のこの新しいリリースでは、次のことが強調されています。 Rust 言語でプロジェクトをビルドするためのモジュールは、安定していると宣言されています。 このモジュールは Mesa プロジェクトで Rust で書かれたコンポーネントを構築するために使用されます。
ほとんどのコンパイラ チェック関数でサポートされているプレフィックス オプションは、文字列以外の配列を処理する機能を実装します。
今回のリリースで注目すべきもう1つの変更点は、文字列内に部分文字列が存在するかどうかを判断するための新しい「in」演算子と「not in」演算子が導入されたことです。これは、以前から利用可能だった配列や辞書内の要素の出現チェックと同様の機能です。
さらに、利用可能なすべてのコンパイラ警告の出力を有効にするオプション「 warning-level=everything」が追加されていることもわかります(clangとMSVCでは-Weverythingと/Wallを使用し、GCCでは個別の警告が含まれますが、これはおおよそclangの-Weverythingモードに対応します)。
また、作業ディレクトリを上書きできる新しい引数「--workdir」が追加されたことも注目に値します。たとえば、作業ディレクトリの代わりに現在のディレクトリを使用する場合などに使用できます。
rust.bindgen メソッドは、"dependencies" 引数を処理して、コンパイラによって処理される依存関係へのパスを渡す機能を実装します。java.generate_native_headers 関数は廃止され、Meson の一般的な関数命名スタイルに合わせて java.native_headers に名前が変更されました。
さらに、クロスコンパイル時に、開発者環境がホストマシンのすべての環境変数を設定するようになったことも言及されています。また、プロパティが定義されている場合は、QEMU_LD_PREFIXとクロスファイルのsys_root値も設定するようになりました。これは、例えばx86_64 Linuxからaarch64 Linux向けにクロスコンパイルする場合など、クロスコンパイルされた実行ファイルがコンパイルマシン上で透過的に実行されることが多いことを意味します。
最後に、さらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。
Linux に Meson をインストールするには?
このビルド システムを自分のシステムにインストールできることに関心がある場合は、以下で共有する手順に従ってインストールできます。
Meson が PyPi で利用できることを知っておく必要があるため、次のコマンドでインストールできます。
pip3 install meson
注として、pip をインストールするために入力する正確なコマンドはシステムによって異なる可能性があるため、Python 3 バージョンの pip を使用することをお勧めします。