• # gprbuild

    Posté par (site web personnel) . En réponse au journal Un petit tour des systèmes de build. Évalué à 4.

    Alors dans le monde (souvent oublié) d'Ada, il y a gprbuild (« gpr » pour GNAT project, GNAT étant le compilateur développé par AdaCore et reposant sur GCC).

    Avec gprbuild, on décrit son projet dans un fichier .gpr dans une syntaxe qui rappelle l'Ada. C'est donc facile à lire pour un humain. Et c'est pas mal fichu car pas chiant à écrire non plus tout compte fait. Le démarrage d'un fichier projet est assez rapide (3-4 directives pour spécifier les répertoires contenant les sources, les produits de compilation, les binaires), et ça reste généralement assez concis. Et si on a besoin de faire des choses un peu évoluées (avec des switch/case sur des variables d'environnement par exemple), la syntaxe permet de construire son projet de manière assez propre.

    Pour les dépendances, il suffit d'une directive « with madependence.gpr » en début de projet, comme un include (il faut que la dépendance soit décrite dans un fichier .gpr bien sûr), et hop ça link automatiquement avec.

    Ça gère quelques langages, qu'on peut mixer en même temps d'ailleurs (Ada, C, C++).

    C'est le bonheur d'avoir des fichiers projet tout beau et tout propre, faciles à lire et à maintenir.