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
Libérer: 2025-01-29 08:12:17
original
804 Les gens l'ont consulté

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>
Copier après la connexion
. 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>
Copier après la connexion

Ensuite, spécifiez le fichier de patch dans Fichier:
mkdir -pv subprojects/{packagecache,packagefiles}
git -C ./subprojects/ht add meson.build
git -C ./subprojects/ht diff --cached > ./subprojects/packagefiles/ht-meson.patch
Copier après la connexion

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

echo "diff_files = ht-meson.patch" >> ./subprojects/ht.wrap
Copier après la connexion

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

comme prévu.
meson subprojects purge --confirm
meson subprojects download
CC=gcc meson setup ./build --wipe -D b_sanitize=none -D buildtype=release
meson compile -C ./build
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal