首页 > 解决方案 > 无法使介子构建系统中的包装文件选项正常工作

问题描述

我试图为 arm 交叉编译 glib。它依赖于 libffi,但发现 libffi 的介子构建是在 2 年前最后更新的,并且可用的内容存在问题。

因此我必须定义一个包装文件来获取最新的 libffi 源。

我的第一个想法是使用如下包装文件 -

    [wrap-git]
    directory=libffi
    url=https://github.com/libffi/libffi
    revision=head

ps 它是具有 libffi 正确源代码的主要版本。但它需要一个介子修正,似乎并没有占据主导地位。

因此我选择了 [wrap-file] 选项,

    [wrap-file]
    directory = libffi-3.3
    source_url = https://github.com/libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz
    source_filename = libffi-3.3.tar.gz
    source_hash = 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056

但是在进行介子构建时,我仍然收到此错误“子项目存在但没有 meson.build 文件”。

这是 glib 附带的原始包装文件。

    [wrap-git]
    directory=libffi
    url=https://github.com/centricular/libffi.git
    revision=meson

什么是让包装文件工作的最简单方法。

标签: meson-build

解决方案


据我所见,有人分叉了项目并添加了对的支持meson,命名为那个分支meson,所以修订只是包含的分支的名称meson.build

官方项目不支持meson.build. 真正发生的是,当您构建使用 wrap git/file 的项目时,该项目被获取/下载和解压缩,并搜索meson.build为您的项目构建该依赖项。

你有几个选择:

  1. Fork 项目并添加对 meson 的支持(可选:将 PR 提交到官方项目)
  2. 安装并使用它作为依赖
  3. 使用conan包管理器获取您的依赖项,您甚至可以将其与meson( https://conan.io/center/libffi/3.3/?user= &channel= )集成

推荐阅读