Я хочу использовать библиотеку сжатия zstd для своего проекта библиотеки C ++. Моя система сборки основана на мезоне. Мой файл meson.build выглядит так
project('foo', 'cpp', default_options :
['cpp_std=c++17', 'buildtype=release'],
version : '0.1', license: 'MIT')
subproject('zstd', default_options: 'builddir=build/meson')
Я создал файл обертки мезона zstd subprojects / zstd.wrap
[wrap-file]
directory = zstd-1.4.5
source_url = https://github.com/facebook/zstd/releases/download/v1.4.5/zstd-1.4.5.tar.gz
source_filename = zstd-1.4.5.tar.gz
source_hash = 98e91c7c6bf162bf90e4e70fdbc41a8188b9fa8de5ad840c401198014406ce9e
Когда я запускаю meson compile
, я получаю эту ошибку
../meson.build:5:0: ERROR: Subproject exists but has no meson.build file
Проблема, похоже, в том, что zstd использует CMAKE в качестве системы сборки по умолчанию, а файл meson находится в подпапке build/meson
, а не в корне, где его ожидает. Я пытался:
- Использование
default_options: 'builddir=build/meson'
для подпроекта, но это не повлияло - Сборка zstd с использованием интеграции CMAKE завершилась неудачно из-за других ошибок, что усложнило настройку.
- Создание патча для перемещения файлов сборки zstd meson на два каталога вверх в корень
zstd
, но для этого потребовалось больше зависимостей, а затем не удалось разрешить пути, поскольку zstd ожидает файлы вbuild/meson
, а не в корне.
Могу ли я легко создать zstd как мезонный подпроект для моей библиотеки C ++?