Présentation

Les projets C/C++ sont empaquetés pour le système de build Zig, permettant ainsi aux utilisateurs de compiler (et de cross-compiler) ces projets avec facilité. Cela fournit une commodité pour les utilisateurs de la chaîne d'outils du compilateur Zig et montre également aux mainteneurs de projets C/C++ à quoi ressemble un fichier build.zig pour leur projet.

Architecture et fonctionnement

Zig est un système de build complet qui fonctionne sur toutes les plates-formes prises en charge et peut effectuer tout ce que les autres outils font. Il élimine les dépendances à Make, GNUMake, CMake, autoconf, bash scripts, batch scripts, powershell scripts, Clang, ainsi que les gestionnaires de packages système. De plus, Zig peut cross-compiler du code C/C++/Zig, ce qui rend la création d'une version aussi simple que l'exécution de la commande

zig build release
.

Intégration et maintenance

Les mainteneurs de projets peuvent intégrer les fichiers build.zig dans leur projet en amont. Pour ce faire, ils doivent conserver les mêmes dépendances système que la version empaquetée ou utiliser l'intégration de bibliothèques système pour donner aux utilisateurs le choix. Deux stratégies sont utilisées pour empaqueter les projets : ajouter le projet en amont comme dépendance et définir le script build.zig correspondant, ou forker le projet en amont et ajouter des scripts de build Zig.

Contributions et exigences

Pour contribuer à un référentiel, certaines règles doivent être suivies : le référentiel doit avoir une licence pour le code, qui doit être au moins aussi permissive que la licence du projet d'origine. Le référentiel doit empaqueter le projet C/C++ d'origine sans ajouter de contenu spécifique à Zig. Les contributeurs doivent cibler la dernière version étiquetée de Zig et utiliser la première stratégie (build.zig + tarball immaculé) sauf si des corrections de code source sont nécessaires ou si les autres scripts de build doivent être nettoyés et améliorés.