Build facet

Table of Contents

Summary

The build facet is the CMake projection of a component: the CMakeLists.txt files that wire its libraries, sources, tests and modeling targets into the build. It is generated by ores.codegen under --profile cmake from the component model, so the build graph stays in lock-step with the logical model rather than being maintained by hand. Like every facet it groups one technical space's artefacts — here the CMake technical space — for a component.

Detail

The facet emits one CMakeLists.txt per structural role a component can take, selected by the component's shape in the model:

  • Component root — the top-level CMakeLists.txt adding the component's sub-directories.
  • src variantssrc, plus api/, core/ and service/ variants for components that split along those lines.
  • Tests — the test executable target and its sources.
  • Modeling — the diagram-generation target.

The build facet is structural, not per-entity: it is parameterised by the component (its libraries and sub-directories), where the C++ and SQL facets are parameterised by the logical entity. Read the template for the authoritative output — do not reproduce it here.

See also

  • Facet — the MASD facet concept this instantiates.
  • Applied MASD — the full facet catalogue and codegen routes.
  • cmake — the literate templates that generate this facet.

Emacs 29.1 (Org mode 9.6.6)