Bonjour à tous.
J'ai récemment commencé un gros projet en Pony et, la taille du projet augmentant de plus en plus, je suis face à un problème concernant le choix d'un système de build.
Je vous explique rapidement le fonctionnement du compilateur Pony. Un programme Pony est divisé en packages, un par dossier. L'endroit d'où est lancé le compilateur détermine le package principal, qui sera le point d'entrée du programme. Par exemple, la commande ponyc --output=../build/
lancée dans le dossier foo/bar
génèrera l'exécutable foo/build/bar
.
Mon problème est le suivant : mon projet est composé de plusieurs modules, chacun générant un exécutable. J'ai donc cherché à automatiser le processus. Pour l'instant, j'ai écrit un script bash (très moche, attention les yeux) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/bin/bash root_dir=$PWD make_foo=false make_bar=false if [ $# -eq 0 ]; then make_foo=true make_bar=true else for arg in "$@"; do if [ $arg = "foo" ]; then make_foo=true elif [ $arg = "bar" ]; then make_bar=true fi done fi if [ ! -d "build" ]; then mkdir "build" fi if [ $make_foo = true ]; then cd "src/foo" ponyc --path=$root_dir/src --output=$root_dir/build cd $root_dir fi if [ $make_bar = true ]; then cd "src/bar" ponyc --path=$root_dir/src --output=$root_dir/build cd $root_dir fi |
Évidemment, ce script est très peu pratique à maintenir au fur et à mesure de l'évolution du projet, n'est pas portable, etc. N'étant pas expert dans ce domaine, je me tourne vers vous afin d'avoir des avis sur le système à utiliser. Les principales caractéristiques que je recherche sont :
- Indépendant du langage traité ;
- Syntaxe concise ;
- Possibilité de spécifier les modules à compiler en fonction des arguments fournis ;
- Portabilité.
D'avance, je vous remercie.