无法在介子构建系统中获得 wrap-file 选项

Unable to get the wrap-file option in meson build system working

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

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

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

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

p.s 它是具有 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

但是我在构建介子时仍然遇到这个错误"Subproject exists but has no meson.build file"。

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

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

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

据我所知,有人分叉了项目并添加了对 meson 的支持,将该分支命名为 meson,因此修订版只是包含 meson.build[=18 的分支名称=]

官方项目不支持meson.build。真正发生的是,当您构建使用 wrap git/file 的项目时,该项目是 fetched/downloaded&unzip,它会搜索 meson.build 来为您的项目构建该依赖项。

您有几个选择:

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