SCons
SCons est un outil de construction de logiciel open source visant à être une alternative solide aux utilitaires historiques make et autoconf. La simplicité d'utilisation, la robustesse de la construction et l'évolutivité sont autant d'atouts de SCons.
Contrairement à ses concurrents tels Autotools et CMake, SCons ne nécessite pas l'apprentissage d'un langage spécifique (parfois limité). SCons est écrit en Python et l'utilise comme langage de base pour la configuration. Ainsi, il bénéficie d'une syntaxe puissante, simple et bien documentée permettant de créer un système sur mesure.
Les principales caractéristiques de SCons sont les suivantes :
- syntaxe portable : langage python, facile d'apprentissage et puissant ;
- support d'un grand nombre de langages : C, C++, Java, Fortran, D, LaTex... Possibilité de définir des règles de compilation et analyseurs de dépendances spécifiques ;
- construction multi-plateforme : Linux, Mac OS X, Windows. Possibilité de générer des solutions VisualStudio. Le seul pré-requis est de bénéficier d'un interpréteur Python. Manipulation des fichiers indépendante de la plateforme ;
- configuration automatisée : recherche automatique des fichiers de dépendances, des librairies et des fonctions appelées à la manière autoconf ;
- détection pour la recompilation : basée sur la signature MD5 (par défaut) des fichiers. Possibilité de se baser sur la date de modification (timestamp) « à la make » ;
- compilation parallèle : représentation globale du graphe de dépendance (SQLite) permettant une parallélisation performante (contrairement à make) ;
- utilisation de cache : mise en cache des informations collectées lors du premier appel et réutilisation lors des appels suivants « à la ccache » ;
- séparation des répertoires sources et de compilation : possibilité de compilation hors de l'arborescence des fichiers sources ;
- installeur : possibilité d'installer les fichiers résultats de compilation, entre autres, dans des répertoires particuliers ;
- verbosité du graphe de dépendance : possibilité d'affichage de l'arbre de dépendance des fichiers du logiciel ;
- verbosité d'exécution : possibilité d'affichage détaillé de l'exécution de la compilation ;
- environnements de construction : possibilité de définition d'environnement de construction ou d'exécution spécifique à chaque programme. Permet ainsi de produire des programmes compilés avec des options différentes en une unique utilisation ;
- gestion de compilation : possibilité de contrôler finement la construction en ligne de commande ;
- construction à partir de dépôts : possibilité d'utiliser les sources issus de systèmes de révision tels CVS et SVN.
SCons est utilisé quotidiennement au LSIIT ainsi qu'à l'IRCAD à Strasbourg pour la compilation de codes C/C++ dans le cadre de développements logiciels pour la recherche.
A titre personnel, le choix de SCons a été motivé par la simplicité de prise en main (bonne documentation) et d'utilisation (syntaxe Python) ainsi que par la possibilité d'enrichir sans trop d'efforts les fonctions fournies de base (possibilité de définir ses propres fonctions de traitement des fichiers).