wraptoolを使用する
Wraptoolは、WrapDBデータベースを使用してソース依存関係を管理することを可能にするMesonのサブコマンドです。依存関係のインストールと更新などの、必要なあらゆる機能を提供します。ラップツールはすべてのプラットフォームで動作し、唯一の制限はラップ定義がターゲットプラットフォームで動作する必要があることです。動作しないラップが見つかった場合は、バグを報告するか、さらに良い方法としてパッチを送信してください。
ここでのすべてのコード例は、最上位のソースディレクトリでコマンドを実行していることを前提としています。$
マークで始まる行は、入力するコマンドです。
簡単なクエリ
行う最も簡単な操作は、使用可能なパッケージのリストをクエリすることです。すべてをリストするには、次のコマンドを発行します。
$ meson wrap list
box2d
enet
gtest
libjpeg
liblzma
libpng
libxml2
lua
ogg
sqlite
vorbis
zlib
通常、特定のパッケージを検索する場合があります。これはsearch
コマンドを使用して行うことができます。
$ meson wrap search jpeg
libjpeg
パッケージがラップのリストにない場合、search
コマンドはすべてのラップ依存関係を調べます。
$ meson wrap search glib-2.0
Dependency glib-2.0 found in wrap glib
インストール可能なlibjpegのバージョンを特定するには、info
コマンドを発行します。
$ meson wrap info libjpeg
Available versions of libjpeg:
9a 2
最初の数値はアップストリームのリリースバージョンで、この場合は9a
です。2番目の数値はラップの改訂番号です。これらは特定のものに関して関連していませんが、大きい数値は新しいリリースを示します。常に最新バージョンのリリースを使用する必要があります。
依存関係のインストール
依存関係のインストールも簡単です。まず、ソースツリーのトップにサブプロジェクト
ディレクトリを作成し、インストールコマンドを発行します。
$ meson wrap install libjpeg
Installed libjpeg branch 9a revision 2
これで、meson.build
ファイルでsubproject('libjpeg')
を発行して使用できます。
プロジェクトが最新かどうかを確認するには、status
コマンドを発行します。
$ meson wrap status
Subproject status
libjpeg up to date. Branch 9a, revision 2.
zlib not up to date. Have 1.2.8 2, but 1.2.8 4 is available.
この場合、zlib
には新しいリリースがあります。更新は簡単です。
$ meson wrap update zlib
Updated zlib to branch 1.2.8 revision 4
Wraptoolは、これらの他に他のこともできます。これらのドキュメントは、meson wrap --help
でアクセスできるコマンドラインヘルプにあります。
依存関係の自動フォールバック
0.64.0以降のMesonは、WrapDBを使用して不足している依存関係を自動的に見つけることができます。
ユーザーは最新のデータベースをダウンロードするだけで、以下のコマンドはこれをsubprojects/wrapdb.json
に格納します: $ meson wrap update-db
データベースがローカルに利用可能になると、システムにはないがWrapDBで利用可能な依存関係は自動的にダウンロードされます。
WrapDBサブプロジェクトの自動フェッチは、ファイルsubprojects/wrapdb.json
を削除するか、--wrap-mode=nodownload
を使用することで無効にすることができます。
検索結果は次のとおりです。