Mesonを使用してC++で小さなゲームを構築したいと考えています。のは、論文は私のファイルであることを言ってみましょう:ここデータ/資産とポータブル/相対パスで作業するMeson
.
├── img
│ └── img.png
├── meson.buid
└── src
├── main.cpp
└── meson.build
はmeson.buid
ファイルは、次のとおりです。
# meson.build
project('mygame', 'cpp')
subdir('src')
pkgdatadir = join_paths(get_option('datadir'), 'mygame')
install_subdir('img', install_dir : join_paths([pkgdatadir, 'img']))
そして、第二のファイル:私のC++コードで
# src/meson.build
executable('mygame', 'main.cpp', install : true)
、どのようなパスがIべきバンドルされたアプリケーションを作成した可能性がある場合は、を使用して、資産ファイルを移植可能な(相対的な)方法(Windows、OS X、Linux)でロードするか、 eb)システムファイル階層のパッケージ?
ビルドディレクトリにninja
でビルドすると、すべてのゲームデータにインストールする必要がなく、ファイルパスが機能します。
コンパイル時にDATA_PREFIX
という定義を追加するか、環境変数を使用すると考えました。
http://mesonbuild.com/Installing.htmlおよびhttp://mesonbuild.com/Reference-manual.html#install_dataを参照してください。
ありがとうございます。
>すべてのゲームデータにインストールすることなく、ビルドディレクトリにninjaを作成すると、ファイルパスが有効になります。 どうすればよいですか?プレフィックスを変更しますか?どうやって ? –
あなたは 'run_target()'を使い、その後env変数 'MESON_SOURCE_ROOT'と' MESON_BUILD_ROOT'をコードチェックでチェックします – TingPing