|
1 | 1 | Software Heirarchy |
2 | 2 | ================== |
| 3 | + |
| 4 | +BuildCC single lib |
| 5 | +------------------- |
| 6 | + |
| 7 | +**BuildCC** sources are compiled into a single library |
| 8 | + |
| 9 | +..uml:: |
| 10 | + |
| 11 | + rectangle Flatbuffers as flatbuffers |
| 12 | + rectangle fmt as fmt |
| 13 | + rectangle spdlog as spdlog |
| 14 | + rectangle Taskflow as taskflow |
| 15 | + rectangle CLI11 as cli11 |
| 16 | + rectangle "tiny-process-library" as tpl |
| 17 | + |
| 18 | + rectangle BuildCC as buildcc |
| 19 | + |
| 20 | + flatbuffers -up-> buildcc |
| 21 | + fmt -up-> buildcc |
| 22 | + spdlog -up-> buildcc |
| 23 | + taskflow -up-> buildcc |
| 24 | + cli11 -up-> buildcc |
| 25 | + tpl -up-> buildcc |
| 26 | + |
| 27 | + |
| 28 | +BuildCC interface lib |
| 29 | +--------------------- |
| 30 | + |
| 31 | +**BuildCC** is broken up into multiple smaller libraries |
| 32 | + |
| 33 | +* This has been done mainly for unit-testing and mocking segregation |
| 34 | +* It helps to easily architect the ``BuildCC`` library by visualizing internal dependencies |
| 35 | + |
| 36 | +..uml:: |
| 37 | + |
| 38 | + rectangle Flatbuffers as flatbuffers #palegreen |
| 39 | + rectangle fmt as fmt #palegreen |
| 40 | + rectangle spdlog as spdlog #palegreen |
| 41 | + rectangle Taskflow as taskflow #palegreen |
| 42 | + rectangle CLI11 as cli11 #palegreen |
| 43 | + rectangle "tiny-process-library" as tpl #palegreen |
| 44 | + |
| 45 | + rectangle Environment as env #aliceblue |
| 46 | + rectangle Toolchain as toolchain #aliceblue |
| 47 | + rectangle Target as target #aliceblue |
| 48 | + rectangle "Toolchain specialized" as toolchain_specialized #aliceblue |
| 49 | + rectangle "Target specialized" as target_specialized #aliceblue |
| 50 | + rectangle Args as args #aliceblue |
| 51 | + rectangle Register as register #aliceblue |
| 52 | + rectangle "Supported Plugins" as plugins #aliceblue |
| 53 | + rectangle BuildCC as buildcc |
| 54 | + |
| 55 | + |
| 56 | + fmt -up-> env |
| 57 | + spdlog .up.> env |
| 58 | + tpl .up.> env |
| 59 | + |
| 60 | + flatbuffers .up.> target |
| 61 | + taskflow -up-> target |
| 62 | + |
| 63 | + cli11 -up-> args |
| 64 | + taskflow -up-> register |
| 65 | + |
| 66 | + env -up-> toolchain |
| 67 | + |
| 68 | + toolchain -up-> target |
| 69 | + toolchain -up-> toolchain_specialized |
| 70 | + |
| 71 | + target -up-> target_specialized |
| 72 | + |
| 73 | + target -up-> args |
| 74 | + target -up-> register |
| 75 | + target -up-> plugins |
| 76 | + |
| 77 | + toolchain_specialized -up-> buildcc |
| 78 | + target_specialized -up-> buildcc |
| 79 | + args -up-> buildcc |
| 80 | + register -up-> buildcc |
| 81 | + plugins -up-> buildcc |