Невозможно получить опцию wrap-file в системе сборки мезона. - PullRequest
0 голосов
/ 07 мая 2020

Я пытался кросскомпилировать glib для arm. Он зависит от 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

самый простой способ получить обернуть файл рабочий.

1 Ответ

2 голосов
/ 07 мая 2020

Насколько я понимаю, кто-то разветвил проект и добавил поддержку meson, назвав эту ветку meson, поэтому ревизия - это просто имя ветки, содержащей meson.build

Официальный проект не имеет поддержка meson.build. Что на самом деле происходит, так это когда вы создаете свой проект, который использует wrap git / file, этот проект извлекается / загружается и распаковывается, и он ищет meson.build, чтобы построить эту зависимость для вашего проекта.

У вас есть несколько вариантов:

  1. Разбить проект и добавить поддержку meson (опционально: сделать PR для официального проекта)
  2. Установить и использовать его как зависимость
  3. Используйте conan менеджер пакетов, чтобы получить ваша зависимость, вы даже можете интегрировать ее с meson (https://conan.io/center/libffi/3.3/?user= & channel = )
...