8 | | === another case study === |
| 9 | * `proj-a` has no dep. |
| 10 | * `proj-b` uses `proj-a` |
| 11 | * `proj-c` uses `proj-b` |
| 12 | * `proj-d` uses `proj-c` and `proj-a` |
| 13 | |
| 14 | |
| 15 | ==== `proj-a` |
| 16 | |
| 17 | has `pkg-aaa` which: |
| 18 | |
| 19 | * creates a `libpkg-aaa` library |
| 20 | * installs a header `pkg-aaa/pkg-aaa.h` |
| 21 | |
| 22 | ==== `proj-b` |
| 23 | |
| 24 | has `pkg-bbb` which: |
| 25 | |
| 26 | * uses `pkg-aaa` (to get a function from `libpkg-aaa`) |
| 27 | * creates a `libpkg-bbb` library |
| 28 | * installs a header `pkg-bbb/pkg-bbb.h` |
| 29 | |
| 30 | ==== `proj-c` |
| 31 | |
| 32 | has `pkg-ccc` which: |
| 33 | |
| 34 | * uses `pkg-aaa` and `pkg-bbb` to get the functions from (resp.) `libpkg-aaa` and `libpkg-bbb` |
| 35 | * creates a `libpkg-ccc` library |
| 36 | * installs a header `pkg-ccc/pkg-ccc.h` |
| 37 | |
| 38 | ==== `proj-d` |
| 39 | |
| 40 | dummy. |
| 41 | |
| 42 | |
| 43 | == TODO |
| 44 | * play with a binary in `proj-a/pkg-aaa` which would `dlopen` a library and call some function |
| 45 | * play with a `proj-b/pkg-aaa` overidding `proj-a/pkg-aaa` in `proj-c/pkg-ccc` |
| 46 | |
| 47 | == How to play |
| 48 | |
| 49 | {{{ |
| 50 | $ hg clone ssh://hg@bitbucket.org/binet/waffle-multi-proj |
| 51 | $ cd waffle-multi-proj |
| 52 | $ ./build-projs.sh |
| 53 | }}} |
| 54 | |
| 55 | this will compile and install everything under `$sitedir=${HOME}/tmp/opt/mproj` |
| 56 | |
| 57 | |
| 58 | ---- |
| 59 | |
| 60 | = Les config pour Gaudi |
| 61 | * [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] |
| 62 | * [https://bitbucket.org/binet/waffle/src/tip/wafflelib/gen-wscript.py le script qui génère un wscript a partir des memes requirements] |
| 63 | |
| 64 | ---- |
| 65 | |
| 66 | = another case study |