使用 wraptool
Wraptool 是 Meson 的一个子命令,允许你使用 WrapDB 数据库来管理你的源代码依赖项。它提供了你期望的所有功能,例如安装和更新依赖项。wrap 工具适用于所有平台,唯一的限制是 wrap 定义在你的目标平台上运行。如果你发现某些 Wraps 不起作用,请提交 bug 或,更重要的是,补丁。
这里的所有代码示例都假设你正在你的顶级源代码目录中运行命令。以 $
开头的行是需要输入的命令。
简单查询
最简单的操作是查询可用包列表。要列出所有包,请执行以下命令
$ meson wrap list
box2d
enet
gtest
libjpeg
liblzma
libpng
libxml2
lua
ogg
sqlite
vorbis
zlib
通常,你希望搜索特定包。这可以通过 search
命令完成
$ meson wrap search jpeg
libjpeg
如果在 wrap 列表中找不到包,search
命令将在所有 wrap 依赖项中查找
$ 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
。第二个数字是 Wrap 修订号。它们与任何特定内容无关,但数字越大意味着版本越新。你应该始终使用最新的可用版本。
安装依赖项
安装依赖项同样简单。首先,只需在源代码树的顶部创建 subprojects
目录,并执行安装命令。
$ 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 中可用的依赖项都会被自动下载。
可以通过删除 subprojects/wrapdb.json
文件,或使用 --wrap-mode=nodownload
来禁用自动获取 WrapDB 子项目。
搜索结果为