Mesonの使い方

Mesonは可能な限りシンプルに使えるように設計されています。このページでは、インストール、トラブルシューティング、標準的な使用方法に必要な最初のステップの概要を示します。

詳細な設定については、コマンドラインヘルプ`meson --help`またはMesonbuildウェブサイトにあるMesonドキュメントを参照してください。

目次

要件

Ninjaは、Ninjaバックエンドを使用する場合にのみ必要です。MesonはネイティブのVSおよびXcodeプロジェクトファイルも生成できます。

パッケージマネージャーを使用したインストール

Ubuntu

$ sudo apt-get install python3 python3-pip python3-setuptools \
                       python3-wheel ninja-build

頻繁なリリースサイクルと開発速度のため、ディストロパッケージされたソフトウェアはすぐに古くなる可能性があります。

Pythonを使用したインストール

要件:pip3

最新バージョンのMesonbuildを入手する最適な方法です。

ローカルユーザーとしてインストール(推奨)

$ pip3 install --user meson

rootとしてインストール

# pip3 install meson

rootとしてインストールするかローカルユーザーとしてインストールするかが不明な場合は、ローカルユーザーとしてインストールしてください。

ソースからのインストール

要件:git

Mesonは、クローンされたgitリポジトリから直接実行できます。

$ git clone https://github.com/mesonbuild/meson.git /path/to/sourcedir

トラブルシューティング

よくある問題

$ meson setup builddir
$ bash: /usr/bin/meson: No such file or directory

説明:Python pipモジュールインストールのデフォルトのインストールプレフィックスが、シェル環境の`PATH`に含まれていない可能性があります。デフォルトのインストール場所は、OS、ディストリビューション、Pythonバージョンによって異なります。

解決策:この問題は、Pipがバイナリをインストールしたパス(例:`/usr/local/bin`または`/home//.local/bin`)をデフォルトのシェル環境`PATH`に追加することで解決できます。

注記:シンボリックリンクの使用やバイナリをデフォルトのパスにコピーするなど、この問題を解決する他の方法がありますが、パッケージ管理の相互運用性を損なう可能性があるため、これらの方法は推奨またはサポートされていません。

Mesonプロジェクトのコンパイル

Mesonの最も一般的なユースケースは、作業中のコードベースでコードをコンパイルすることです。手順は非常に簡単です。

$ cd /path/to/source/root
$ meson setup builddir && cd builddir
$ meson compile
$ meson test

唯一注意すべき点は、別々のビルドディレクトリを作成する必要があることです。Mesonでは、ソースツリー内でソースコードをビルドすることはできません。すべてのビルドアーティファクトはビルドディレクトリに格納されます。これにより、異なる設定を持つ複数のビルドツリーを同時に持つことができます。これにより、生成されたファイルが誤ってリビジョンコントロールに追加されることはありません。

コードの変更後に再コンパイルするには、`meson compile`と入力するだけです。ビルドコマンドは常に同じです。ソースコードとビルドシステムファイルに任意の変更を加えることができ、Mesonはそれらを検出し、適切な処理を行います。最適化されたバイナリをビルドする場合は、Mesonを実行する際に引数`--buildtype=debugoptimized`を使用してください。最適化されていないビルド用と最適化されたビルド用のビルドディレクトリをそれぞれ1つずつ保持することをお勧めします。任意の設定をコンパイルするには、対応するビルドディレクトリに移動して`meson compile`を実行します。

Mesonは、デバッグ情報とコンパイラ警告を有効にするコンパイラフラグ(つまり`-g`と`-Wall`)を自動的に追加します。つまり、ユーザーはそれらを処理する必要がなく、コーディングに集中できます。

ディストロパッケージャーとしてのMesonの使用

ディストロパッケージャーは通常、使用されるビルドフラグを完全に制御したいと考えています。Mesonはこのユースケースをネイティブにサポートしています。Mesonプロジェクトをビルドしてインストールするために必要なコマンドは次のとおりです。

$ cd /path/to/source/root
$ meson --prefix /usr --buildtype=plain builddir -Dc_args=... -Dcpp_args=... -Dc_link_args=... -Dcpp_link_args=...
$ meson compile -C builddir
$ meson test -C builddir
$ DESTDIR=/path/to/staging/root meson install -C builddir

コマンドラインスイッチ`--buildtype=plain`は、Mesonに独自のフラグをコマンドラインに追加しないように指示します。これにより、パッケージャーは使用されるフラグを完全に制御できます。

これは他のビルドシステムと非常によく似ています。唯一の違いは、`DESTDIR`変数が引数として`meson install`に渡されるのではなく、環境変数として渡されることです。

ディストロビルドは常にゼロから行われるため、パッケージでユニティビルドを有効にすることを検討してください。これにより、ビルドが高速になり、より良いコードが生成されます。ただし、ユニティビルドが有効になっていないプロジェクトも多くあるため、ユニティビルドを使用するかどうかは、パッケージャーがケースバイケースで決定する必要があります。

検索の結果は次のとおりです。