Summary
Extract pacs_system's modular cmake/*.cmake decomposition into a reusable kcenon-cmake-template/ so the other 7 systems can adopt it as a drop-in. Today only pacs_system follows this pattern; the other 7 carry monolithic root CMakeLists.txt files (range 150-1032 lines).
Part of #656. Depends on the layout standard from #658.
Why
- pacs_system already proves the modular pattern works in production
- Extracting once and reusing saves the same decomposition work in 7 systems
- A versioned template makes upgrades coordinated rather than ad-hoc
Scope
- Identify the 8 canonical modules in pacs_system:
options.cmake, compiler.cmake, dependencies.cmake, targets.cmake, install.cmake, testing.cmake, examples.cmake, warnings.cmake
- Generalize each module to remove pacs-specific assumptions (project name, namespace, target list)
- Place the template under
cmake/template/ (or as a separate directory-scoped artifact) with a README explaining adoption steps
- Document the template version and how downstream systems track upgrades
Acceptance Criteria
Out of Scope
Summary
Extract pacs_system's modular
cmake/*.cmakedecomposition into a reusablekcenon-cmake-template/so the other 7 systems can adopt it as a drop-in. Today only pacs_system follows this pattern; the other 7 carry monolithic rootCMakeLists.txtfiles (range 150-1032 lines).Part of #656. Depends on the layout standard from #658.
Why
Scope
options.cmake,compiler.cmake,dependencies.cmake,targets.cmake,install.cmake,testing.cmake,examples.cmake,warnings.cmakecmake/template/(or as a separate directory-scoped artifact) with a README explaining adoption stepsAcceptance Criteria
Out of Scope