ores.cpp.component
Table of Contents
This page is the node for the ores.cpp.component facet of the codegen
template library, part of the ores.cpp technical space. Each archetype
below is documented, and holds its mustache source, in its own
linked page — this page is the facet-level summary and the routing
table to them.
1. Summary
The files every component keeps for its whole life: the aggregate include
header that documents its outermost namespace, the shared-library export
macros (all four component profiles) and the Catch2 test_main (all four
profiles). The first-generation scaffolding that used to sit beside them –
the stub function, its implementation and its test – moved to
ores.cpp.scaffold, which is
opt-in.
The umbrella header is not scaffolding and did not stay there. Every component keeps one, a multi-module component keeps one per module, and a composite keeps none because it has no namespace of its own. It is regenerated like any other artefact, so editing the model's description updates the Doxygen brief.
2. The ores.cpp.component facet
The minimal C++ presence of a component: enough generated source that CMake targets build and the test runner passes, with or without real code. A component that has no models yet adds the opt-in scaffold facet for a placeholder to compile and test; once it has one, these three files are what remain.
3. Archetypes
| Archetype | Description |
|---|---|
| ores.cpp.component.export | Per-component shared-library export/import macros. All component profiles. |
| ores.cpp.component.test_main | Catch2 main with the project's logging/test-env setup. |
| ores.cpp.component.test_suite | The test target's shared constants: its logger name and the fixture values every test file uses. |
| ores.cpp.component.umbrella_header | The aggregate include header that carries the component's Doxygen namespace brief. |
4. See also
- ores.cpp — the parent technical space's generated facet/archetype catalogue and shared Mustache conventions.
- C++ Technical Space — the domain-concept overview of this technical space.
- Codegen template library — the groups overview.