Meson は、ソフトウェアの構築を自動化するためのソフトウェア ツールです。 Pythonで書かれた無料のオープンソースです。
Meson 1.4ビルドシステムの新バージョンが先日発表されました。このバージョンでは、FSモジュールの一部の機能に対するサポートが改善されているほか、互換性の向上、新機能などが追加されています。
Mesonをご存知ない方のために説明すると、MesonはX.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME、GTKといった著名なプロジェクトで使用されているビルドシステムです。その主な目的は、高速で使いやすいビルドプロセスを提供することです。デフォルトではNinjaツールキットを使用しますが、XcodeやVisual Studioなどの他のバックエンドとも互換性があります。
このシステムは、クロスプラットフォーム対応の依存関係マネージャーを統合しており、ディストリビューション向けパッケージの作成を簡素化します。コンパイルルールは特定の読みやすい言語で定義されるため、記述に必要な時間を最小限に抑えることができます。
Meson は、C、C++、Fortran、Java、Rust などの複数の言語でのプロジェクトのビルドをサポートし、最後のビルド以降の変更の影響を受けたコンポーネントのみを再ビルドするインクリメンタル ビルド モードを提供します。さらに、Meson は繰り返し可能なビルドを生成できるため、異なる環境でビルドを実行しても完全に同一の実行可能ファイルが生成されます。
Meson 1.4の主な新機能
Meson 1.4 のこの新しいバージョンでは、FS モジュールのサポートが追加され、build_tgt および custom_tgt コンパイルターゲットオブジェクトに加え、fs.name、fs.parent、fs.replace_suffix、fs.stem 関数でコンパイルターゲットインデックス (custom_idx) がサポートされるようになりました。
この新バージョンにおけるもう一つの注目すべき変更点は、MesonがCMakeベースのサブプロジェクトからプロジェクトバージョンを読み取れるようになったことです。これにより、CMakeサブプロジェクトにアクセスする際に、バージョン制約が正しく検証されることが保証されます。
さらに、`qt4`、`qt5`、および`qt6`モジュールの`compile_ui`、`compile_moc`、およびプリプロセッシング関数に`preserve_paths`引数が追加され、書き込まれるファイルのディレクトリ構造を構築するオプションを選択できるようになりました。
また、debugstl が有効な場合に Clang サポートが stldebug に追加され、unset() メソッドが env オブジェクトに導入され、ファイルへのフル パスを取得する full_path() メソッドが File オブジェクトに追加されたことにも注目してください。
numpy-configツールとpkg-configのサポートが、新しいカスタム依存関係として追加されました。これはNumPy 2.0.0以降で利用可能です。numpy-configのサポートは、NumPyがインストールされると自動的に動作します。ただし、pkg-configファイルはPythonサイトパッケージ内に配置されているため、PKG_CONFIG_PATHを設定しない限り、すぐに使用することはできません。
この新バージョンにおけるその他の注目すべき変更点は以下のとおりです。
- ndebug 構成を介して C++ stdlib でアサーション チェック (GLIBCXX_ASSERTIONS) を制御する機能。
- qtモジュール関数にpreserve_pathsunキーワード引数を追加しました
- Compiler.preprocess() の depend: で依存ターゲットを指定できるようになりました。これらのターゲットは、前処理を開始する前に構築する必要があります。
- bindinggen バインディング ジェネレーターは、C++ ヘッダー ファイルを決定するための Meson ヒューリスティックをサポートするようになりました。
- bindinggen の言語設定をオーバーライドする機能が追加されました。
- MemorySanitizer などのサニタイザーの実行時にエラーが発生すると、テストがデフォルトで失敗するようになりました。
- C6000 CPU ファミリ用の Texas Instruments C/C++ コンパイラのサポートが追加されました。
最後に、さらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。
Linux に Meson をインストールするには?
このビルド システムを自分のシステムにインストールできることに関心がある場合は、以下で共有する手順に従ってインストールできます。
Meson が PyPi で利用できることを知っておく必要があるため、次のコマンドでインストールできます。
pip3 install meson
注として、pip をインストールするために入力する正確なコマンドはシステムによって異なる可能性があるため、Python 3 バージョンの pip を使用することをお勧めします。