wiki:Christian

Version 3 (modified by /C=FR/O=CNRS/OU=UMR8607/CN=Christian Arnault/emailAddress=arnault@…, 13 years ago) (diff)

--

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++