Maison >développement back-end >C++ >Meson: Utilisation d'un projet GIT sans Meson.build comme dépendance

Meson: Utilisation d'un projet GIT sans Meson.build comme dépendance

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-29 08:12:17773parcourir

Le projet Meson qui dépend du manque de dépendances

Avez-vous déjà rencontré une telle situation: un excellent projet n'a pas de fichier meson.build, et le défenseur n'acceptera pas votre demande de traction (pr), ni même l'accepter? Alternativement, votre projet doit ajouter un document de licence à chaque fois que vous construisez, mais le défenseur refuse de le faire?

Ne vous inquiétez pas! Vous pouvez résoudre ce problème en ajoutant un patch GIT à . subprojects/*.wrap

Par exemple, dans mon projet ONUR, je préfère utiliser les outils HT de Hoyt au lieu de l'énorme bibliothèque Glib Glib, mais le projet HT n'a pas de fichiers

. meson.build

Pour ce projet sans étiquettes, une configuration simple

, en utilisant la branche principale (wrap-git) comme indiqué ci-dessous: master

./subprojects/ht.wrap

Tout d'abord, téléchargez le sous-projet Meson:
<code>[wrap-git]
directory=ht
url=https://github.com/benhoyt/ht
revision=master
depth=1</code>
. Ensuite, ajoutez

fichier: meson subprojects download meson.build ./subprojects/ht

Ensuite, créez un fichier de correctif:
<code># 创建一个空的 meson.build 文件 (如果需要,可以添加内容)
touch ./subprojects/ht/meson.build </code>

Ensuite, spécifiez le fichier de patch dans Fichier:
<code class="language-bash">mkdir -pv subprojects/{packagecache,packagefiles}
git -C ./subprojects/ht add meson.build
git -C ./subprojects/ht diff --cached > ./subprojects/packagefiles/ht-meson.patch</code>

ht.wrap Enfin, appliquez le patch et compilez le projet:

<code class="language-bash">echo "diff_files = ht-meson.patch" >> ./subprojects/ht.wrap</code>

Les fichiers exécutables apparaîtront dans le répertoire

comme prévu.
<code class="language-bash">meson subprojects purge --confirm
meson subprojects download
CC=gcc meson setup ./build --wipe -D b_sanitize=none -D buildtype=release
meson compile -C ./build</code>

Ressources connexes: ./build

sous-projets de méson

    gcc
  • gnu
  • Informations système:
  • gcc 14.2.0 Meson 1.7.0
ninja 1.12.1

GNU EMACS 30
  • debian sid / gnu Guix / swaywm / waybar / firefox
  • LanguageTool
  • dev.to/easbarba
  • gitlab

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn