CMake Runner Skill
When to use this skill
When you need to configure, build, test, or deploy ORE Studio using CMake.
How to use this skill
- Identify what operation you need to perform (configure, build, test, deploy, generate diagrams).
- All commands must be executed from the top-level project directory.
- Follow the appropriate command from the Detailed instructions section below.
- Default to
linux-clang-debugpreset when on Linux unless otherwise specified. - If you need to inspect the output of the build, see section Output directory layout.
Detailed instructions
Listing and choosing presets
To see all available CMake presets:
cmake --list-presets
The default preset for Linux is linux-clang-debug. For release builds, use linux-clang-release.
Configuring the project
To configure the project with a specific preset:
cmake --preset linux-clang-debug
For release configuration:
cmake --preset linux-clang-release
Building the project
To build the entire project:
cmake --build --preset linux-clang-debug
For release builds:
cmake --build --preset linux-clang-release
Running tests
Running all tests
To run all tests (target name: rat):
cmake --build --preset linux-clang-release --target rat
Running specific component tests
To run tests for a specific component, use the pattern test_COMPONENT_NAME. For example, to run tests for ores.accounts.tests:
cmake --build --target test_ores.accounts.tests --preset linux-clang-debug
Replace ores.accounts.tests with the desired component name.
Deploying skills
To deploy Claude Code skills:
cmake --build --target deploy_skills --preset linux-clang-debug
Generating PlantUML Diagrams
Generating all diagrams
To generate all PlantUML diagrams for the project:
cmake --build --target mad --preset linux-clang-debug
Generating individual component diagrams
To generate a diagram for a specific component, use the pattern
generate_COMPONENT_diagram where COMPONENT is the component name (with dots).
For example, to generate the ores.risk diagram:
cmake --build --target generate_ores.risk_diagram --preset linux-clang-debug
To generate the ores.comms diagram:
cmake --build --target generate_ores.comms_diagram --preset linux-clang-debug
Other available diagram targets include:
generate_ores.accounts_diagramgenerate_ores.utility_diagramgenerate_ores_diagram(system-level architecture diagram)
Deploying the site
To deploy the project website:
cmake --build --target deploy_site --preset linux-clang-debug
Output directory layout
The build output directory lives under build/output. There is a top-level
directory for the presets (e.g. linux-clang-debug, etc) and a top-level
directory for the site called site.
Within the preset directory:
- binaries are located under
publish/bin. - logs for applications are under
publish/log. - logs for tests are organised as follows:
- they are under
publish/log/COMPONENT_TESTSwhereCOMPONENT_TESTSis the name of the component under test, e.g.ores.accounts.tests. - Inside, there is one folder per test suite, e.g.
domain_account_tests,domain_feature_flags_tests, and so on. These must match the test suite implementation files (e.g.projects/ores.accounts/tests/domain_account_tests.cpp). - Inside the test suite folder, there is one log file per test, e.g.
account_serialization_to_json.log. This must match the name of the unit test, e.g.TEST_CASE("account_serialization_to_json", tags) {inprojects/ores.accounts/tests/domain_account_tests.cpp.
- they are under