处理依赖项缺失的Meson项目
您是否遇到过这样的情况:一个优秀的项目没有 meson.build
文件,而维护者又迟迟不接受您的拉取请求(PR),甚至永远不会接受?或者,您的项目需要在每次构建时都添加许可证文件,但维护者拒绝这样做?
别担心!您可以通过在 subprojects/*.wrap
中添加 Git 补丁来解决这个问题。
例如,在我的项目 Onur 中,我更喜欢使用 Hoyt 的 ht 工具,而不是庞大的 GNOME glib 库,但 ht 项目没有 meson.build
文件。
对于这个甚至没有标签的项目,一个简单的 wrap-git
配置,使用主分支 (master
) 如下所示:
./subprojects/ht.wrap
<code>[wrap-git] directory=ht url=https://github.com/benhoyt/ht revision=master depth=1</code>
首先,下载Meson子项目:meson subprojects download
。然后,在子项目根目录中添加 meson.build
文件:./subprojects/ht
<code># 创建一个空的 meson.build 文件 (如果需要,可以添加内容) touch ./subprojects/ht/meson.build </code>
接下来,创建补丁文件:
<code class="language-bash">mkdir -pv subprojects/{packagecache,packagefiles} git -C ./subprojects/ht add meson.build git -C ./subprojects/ht diff --cached > ./subprojects/packagefiles/ht-meson.patch</code>
然后,在 ht.wrap
文件中指定补丁文件:
<code class="language-bash">echo "diff_files = ht-meson.patch" >> ./subprojects/ht.wrap</code>
最后,应用补丁并编译项目:
<code class="language-bash">meson subprojects purge --confirm meson subprojects download CC=gcc meson setup ./build --wipe -D b_sanitize=none -D buildtype=release meson compile -C ./build</code>
可执行文件将如预期一样出现在 ./build
目录中。
相关资源:
系统信息:
以上是Meson:使用无介子的git项目。的详细内容。更多信息请关注PHP中文网其他相关文章!