2 | | = A multi-project testbeb using waffle |
3 | | |
4 | | the multi-proj testbed is [https://bitbucket.org/binet/waffle-multi-proj/overview |
5 | | over there] |
6 | | |
7 | | projects deps |
8 | | |
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 | | ---- |