Présentation du système de build

Un système de build est un programme qui prend en entrée du code source, des binaires et une configuration, et produit des fichiers, des binaires et une configuration selon une structure de dossiers spécifique. Le système de build de Civ est conçu pour être flexible et adaptable à différents systèmes cibles.

Fonctionnement du système de build

Le système de build de Civ repose sur deux principes fondamentaux : tout doit être explicite en termes d'entrées et de sorties, et il doit être possible de configurer programmatiquement les entrées et les sorties pour s'adapter à différents systèmes cibles. Pour cela, Civ utilise un concept appelé « hub » qui permet de centraliser les décisions de construction et de configuration.

Architecture et implémentation

L'architecture de Civ est conçue pour être légère et flexible, avec une bibliothèque de construction minimale et bien définie qui peut être personnalisée pour différents plateformes. Le système utilise un langage de configuration Lua pour définir les règles de construction et les dépendances. Le code source de Civ est relativement petit, avec environ 1000 lignes de code, et utilise une bibliothèque Lua de 100 lignes pour interpréter les configurations.

cc.luk (luk est un fichier de configuration Lua) contient la logique de conversion du code source en objet envoyé à sys/cc/build.lua

Implications et limites

Le système de build de Civ présente plusieurs avantages, notamment sa flexibilité et sa capacité à s'adapter à différents systèmes cibles. Cependant, il nécessite une certaine expertise pour être utilisé de manière efficace, notamment en termes de configuration et de personnalisation. De plus, le système de build de Civ est encore en développement et peut nécessiter des améliorations et des mises à jour pour répondre aux besoins des utilisateurs.