== Développements par Christian === Génération d'un ensemble de packages pour le benchmark {{{ rm -rf /tmp/build mkdir /tmp/build # 50 100 15 5 # 5 5 5 5 libs=50 classes=100 internal=15 external=5 bench.py /tmp/build ${libs} ${classes} ${internal} ${external} n=`expr ${libs} - 1` cd /tmp/build/lib${n}/cmt/ ec cmt broadcast cmt make }}} ==== résultat du bench {{{ cmt broadcast gmake cmt broadcast gmake -j # 228.016u 129.847s 3:36.46 165.3% 0+0k 0+0io 0pf+0w }}} avec tbroadcast: {{{ python2.6 /afs/cern.ch/sw/contrib/CMT/tbroadcast/v2.0.9/scripts/tbroadcast "cmt make -j" ./build.csh >& build.log 59.91s user 96.96s system 32% cpu 8:07.09 total 209.107u 120.217s 2:57.63 185.3% 0+0k 0+0io 0pf+0w }}} === Travail sur une génération automatique du CMake à partir des requirements ==== Principe: On écrit en langage CMake un ensemble de macros capables d'interpréter l'arbre des requirements et d'exécuter directement les instructions CMake. ==== Exercice Je repars du script de benchmark utilisé précédemment. Ceci donne une arborescence de package configurés pour CMT (donc avec un fichier requirements par package) Un script CMakeLists.txt contient les macros capables de parcourir les statements CMT: * en suivant les statements use pour traverser l'arbre des packages selon le use-tree * en convertissant en ligne les statements 'library' en 'add_library' testé sur: * visual-c++ * linux