| | 1 | = A multi-project testbeb using waffle |
| | 2 | |
| | 3 | the multi-proj testbed is [https://bitbucket.org/binet/waffle-multi-proj/overview |
| | 4 | over there] |
| | 5 | |
| | 6 | projects deps |
| | 7 | |
| | 8 | * `proj-a` has no dep. |
| | 9 | * `proj-b` uses `proj-a` |
| | 10 | * `proj-c` uses `proj-b` |
| | 11 | * `proj-d` uses `proj-c` and `proj-a` |
| | 12 | |
| | 13 | |
| | 14 | ==== `proj-a` |
| | 15 | |
| | 16 | has `pkg-aaa` which: |
| | 17 | |
| | 18 | * creates a `libpkg-aaa` library |
| | 19 | * installs a header `pkg-aaa/pkg-aaa.h` |
| | 20 | |
| | 21 | ==== `proj-b` |
| | 22 | |
| | 23 | has `pkg-bbb` which: |
| | 24 | |
| | 25 | * uses `pkg-aaa` (to get a function from `libpkg-aaa`) |
| | 26 | * creates a `libpkg-bbb` library |
| | 27 | * installs a header `pkg-bbb/pkg-bbb.h` |
| | 28 | |
| | 29 | ==== `proj-c` |
| | 30 | |
| | 31 | has `pkg-ccc` which: |
| | 32 | |
| | 33 | * uses `pkg-aaa` and `pkg-bbb` to get the functions from (resp.) `libpkg-aaa` and `libpkg-bbb` |
| | 34 | * creates a `libpkg-ccc` library |
| | 35 | * installs a header `pkg-ccc/pkg-ccc.h` |
| | 36 | |
| | 37 | ==== `proj-d` |
| | 38 | |
| | 39 | dummy. |
| | 40 | |
| | 41 | |
| | 42 | == TODO |
| | 43 | * play with a binary in `proj-a/pkg-aaa` which would `dlopen` a library and call some function |
| | 44 | * play with a `proj-b/pkg-aaa` overidding `proj-a/pkg-aaa` in `proj-c/pkg-ccc` |
| | 45 | |
| | 46 | == How to play |
| | 47 | |
| | 48 | {{{ |
| | 49 | $ hg clone ssh://hg@bitbucket.org/binet/waffle-multi-proj |
| | 50 | $ cd waffle-multi-proj |
| | 51 | $ ./build-projs.sh |
| | 52 | }}} |
| | 53 | |
| | 54 | this will compile and install everything under `$sitedir=${HOME}/tmp/opt/mproj` |
| | 55 | |