• [^] # Re: coquilles

    Posté par . En réponse à la dépêche Petit éventail des outils de construction (« builder ») libres. Évalué à 5.

    Quelques petites coquilles récoltées:

    Introduction

    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 :
    - $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)