Eventualmente você vai achar um projeto bacana que não usa meson.build e o mantenedor demora anos para aceitar PR, se algum dia for.
Ou mesmo seu projeto está em contrato para sempre adicionar a LICENSE em todas as builds e o mantenedor se recusa.
Para resolver esse pepino você pode adicionar aos seus subprojects/*.wrap git patches.
Por exemplo, no meu projeto - onur - por ser uma pequena ferramenta CLI prefiro usar o ht do grande Hoyt ao invés do enorme GNOME glib, mas este projeto git não tem uma meson.build.
Uma simples wrap-git para esse projeto, que sequer tem tags também, seria usando o master:
./subprojects/ht.wrap
[wrap-git] directory=ht url=https://github.com/benhoyt/ht revision=master depth=1 Primeiro vamos pegar todos subprojetos meson subprojects download, e adicionar a meson.build na raiz deste:
./subprojects/ht
cat <<EOF | tee -a ./subprojects/ht/meson.build project('ht', 'c', version: '1.0') ht_sources = [ 'ht.c', 'ht.h', ] ht_lib = static_library('ht', ht_sources) ht_dep = declare_dependency( include_directories: include_directories('.'), link_with: ht_lib) EOF cat ./subprojects/ht/meson.build e criar o patch com:
mkdir -pv subprojects/{packagecache,packagefiles} git -C ./subprojects/ht add meson.build git -C ./subprojects/ht diff --cached > ./subprojects/packagefiles/ht-meson.patch cat ./subprojects/packagefiles/ht-meson.patch uma vez com o patch devemos apontar sua presença ao ht.wrap:
echo "diff_files = ht-meson.patch" >> ./subprojects/ht.wrap cat ./subprojects/ht.wrap Pronto, vamos aplicar o patch:
meson subprojects purge --confirm meson subprojects download e compilar o projeto para confirmar:
CC=gcc meson setup ./build --wipe -D b_sanitize=none -D buildtype=release meson compile -C ./build O executável vai aparecer em ./build como esperado.
Valeu!
Recomendação para leitura:
Informações gerais:
Top comments (0)