Parmi les nombreux outils de construction de projets à notre disposition, SCons se distingue par sa polyvalence et sa simplicité, Python oblige. Découvrons cet outil plein d'astuces.
L'air du temps est au remplacement des makefiles de nos grandspères. L'idée de départ est de faciliter la construction de projets importants et d'avoir un outil portable qui gomme les différences inhérentes aux plates-formes. Ainsi, si potentiellement un makefile traditionnel peut permettre une copie de fichiers, le nom de la commande sera différent: cp sur un Unix, copy sur Windows. (Même si cp est maintenant disponible sous Windows avec PowerShell, les commutateurs restent différents). Dans Programmez! 93 nous avons fait la connaissance de Boost.Build, capable de gérer les dépendances, dédié à C et C++ et assez complexe à appréhender. Et même très complexe à personnaliser. Dans Programmez 77 et 78 nous avons manipulé Ant, outil basé sur Java et logiquement principalement dédié à Java. Aujourd'hui nous allons découvrir SCons, basé sur Python et pas du tout dédié à Python :) SCons permet de construire des projets C ou C++ mais aussi Java ou encore Fortran. Il sait encore s'acquitter d'une multitude de tâches annexes et est facilement extensible et personnalisable. Python est un langage hybride et SCons est hybride lui aussi dans le sens où un fichier de construction est à mi-chemin entre un script Python et un fichier descriptif comme un makefile. Bien sûr, travailler avec SCons implique d'avoir quelques notions de Python mais ceci est une simple formalité. Python est très simple à apprendre et du coup SCons n'est pas abscons :) Python est un de mes langages préférés et tout naturellement SCons, un de mes outils préférés. L'opinion est tout à fait partisane, mais j'espère vous la faire partager par cet article :)