我想使用介子在C++中构建一个小游戏。假设这些是我的档案:
.
├── 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']))第二个文件是:
# src/meson.build
executable('mygame', 'main.cpp', install : true)在我的C++代码中,我应该使用什么路径在可移植(相对)中加载?way (Windows,OS,Linux)的资产文件,考虑到我可能在系统文件层次结构中创建了一个捆绑应用程序或安装了一个(deb)包?
当我在build目录中使用ninja构建时,我也希望这些文件路径能够工作,而不必在所有游戏数据上安装。
我考虑在编译时添加一个定义DATA_PREFIX集,或者使用一个环境变量。
见http://mesonbuild.com/Installing.html和数据。
谢谢。
发布于 2017-10-01 19:38:16
我想在编译时添加一个定义DATA_PREFIX集
这是我推荐的方法。然后,您可以使用configure_file()输出包含它的标题:
conf = configuration_data()
conf.set_quoted('PACKAGE_DATADIR', join_paths(get_option('prefix'), pkgdatadir))
configure_file(
output: 'config.h',
configuration: conf
)然后,只需在源中包含config.h即可。
https://stackoverflow.com/questions/46473646
复制相似问题