2 | | == Sebastien == |
| 2 | == Développements par Sébastien |
| 3 | |
| 4 | [https://svnweb.cern.ch/trac/gaudi/browser/Gaudi/branches/GAUDI/GAUDI_cmake/cmake/genCMake.py le script qui genere des .cmake files à partir des requirements du projet Gaudi] |
| 5 | |
| 6 | [https://bitbucket.org/binet/waffle/src/tip/wafflelib/gen-wscript.py le script qui génère un wscript a partir des memes requirements] |
| 7 | |
| 8 | === another case study === |
| 9 | |
| 10 | During the summer, I pushed a bit on my random walk with replacing CMT. as a case study, I focused on providing a trimmed down athena framework tailored for ROOT flat n-tuples analysis, which I called 'mana' (mini athena) |
| 11 | |
| 12 | First, I tried to familiarize myself with CMake, and this materialized with 'mana-ext', a set of CMakeFiles to build the externals for mana |
| 13 | (boost, clhep, root,...) |
| 14 | |
| 15 | [https://bitbucket.org/binet/mana-ext mana-ext] |
| 16 | |
| 17 | |
| 18 | I must say, I wasn't totally impressed in the end with CMake as a development environment (at least for the part where one has to write |
| 19 | these CMake fragments). the syntax is bulky, string processing is clunky,... of course I just gave it a couple of weeks, but still. |
| 20 | |
| 21 | then, I worked back on my waf-based source code, and this was much more pleasant (python, I guess.) |
| 22 | |
| 23 | [https://bitbucket.org/binet/mana-core mana-core] |
| 24 | |
| 25 | the status of project is summarized in the README of that bitbucket, as well as in the presentation I gave last week to the atlas physics analysis tools (in attachment.) |
| 26 | |
| 27 | in a nutshell, one can build mana-core on linux and macosx with the system-wide installed dependencies, or on lxplus with a lcgcmt |
| 28 | environment setup (mana should be able to pick up the correct libraries.) |
| 29 | |
| 30 | the compilation is 5x faster than with the special toplevel Makefile From Marco. |
| 31 | |
| 32 | the wscript files (which are the req-files equivalent of waf) are semi-automatically generated from the CMT requirement files, using the same technique than Pere's generator. |
| 33 | |
| 34 | the environment is not pushed in the user's shell but is instead available as a subshell properly configured and spawned via |
| 35 | |
| 36 | '$ ./waf shell' |
| 37 | |
| 38 | I plan to implement (after ACAT) the compilation of externals a-la-ExternalProject_Add to waf (for which there is already a skeleton in SVN) as well as proper packaging (ditto): src-pkg, bin-pkg, rpm and mac-bundle. |