Cette dépêche a pour objectif de faire découvrir ou redécouvrir des outils de construction.
Un « builder » ?
Le reste de la dépêche s'attelle à en décrire un certain nombre parmi les plus connus.
Le vénérable Make
Make est une sorte de langage Rule Based Programming dans lequel on spécifie des règles sous la forme :
rapidité : il construit un arbre de dépendances et exécute en parallèle ce qui peut l'être (aujourd'hui tous les builders le font)
Le peu connu OMake
Il utilise une syntaxe similaire à Make mais offre quelques fonctionnalités supplémentaires
La gestion du projet dans plusieurs répertoires ou dans une hiérarchie de répertoires
Il est possible de surveiller le système de fichiers en continu pour relancer la construction dès qu'un fichier est modifié
Un challenger scons
killer feature : scons cache le résultat de chaque opération (compilation, liaison, etc.)
Il comble les lacunes de scons (complexité et lenteur) en proposant des améliorations telles qu'une sortie en couleur et un meilleur support de la compilation parallèle.
Celui de Google : Ninja
Ceux-ci utilisaient Make mais trouvaient que la génération de l'arbre des dépendances était bien trop lente (le temps avant de commencer serait d'une minute).
Déclare une règle cc où :
- $in correspond aux fichiers d'entrée
- $out au fichier de sortie
L'usine à build Apache Maven
une description plus détaillée des inconvénients se trouve sur le blog de Sonatype
Les autres (buildr, gradle...)
Gradle celui-ci gère les projets via un DSL à la place DE FICHIER XML
ainsi il pourra plus facilement travailler sur des projets Groovy ou Scala.
CMake
Il génère un ou des fichier(s) recette(s)
(CMake supporte GoogleTest, CXXTest, SQuish et s'intègre facilement aux autres systèmes)
Les autotools
la plus large collection d'extensions parmi tous les moteurs de production de haut niveau présentés.
re-générer le système de construction est une tâche relativement complexe, souvent laissée à la charge d'un script shell (autogen.sh)
[^] # Re: coquilles
Posté par fero14041 . En réponse à la dépêche Petit éventail des outils de construction (« builder ») libres. Évalué à 5.
Quelques petites coquilles récoltées:
Introduction
Un « builder » ?
Le vénérable Make
Le peu connu OMake
Un challenger scons
Celui de Google : Ninja
L'usine à build Apache Maven
Les autres (buildr, gradle...)
CMake
Les autotools