Project Contract¶
Every deployable project has a stable name, a version, and one exported
sdk::Application.
Project layout¶
signal-watch/
|-- CMakeLists.txt
|-- main.cpp
`-- config.hpp
Create this layout with aurum create <name>. Additional source files and
private project directories are allowed; generated build output is not part of
the deployed source package.
Identity and version¶
aurum_project is the public build contract:
cmake_minimum_required(VERSION 3.25)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
project(signal-watch VERSION 0.0.1 LANGUAGES CXX)
find_package(Aurum CONFIG REQUIRED)
endif()
aurum_project(
NAME signal-watch
VERSION 0.0.1
)
Both values must be literal. aurum push reads them before packaging the
project. Treat a published version as immutable and increment it for every new
deployment.
Application entry point¶
Derive from sdk::Application and export exactly one application type:
class SignalWatch final : public aurum::sdk::Application {
public:
SignalWatch()
: sdk::Application({.mode = sdk::RuntimeMode::LIVE}) {}
};
AURUM_EXPORT(SignalWatch)
Common commands¶
Command |
Result |
|---|---|
|
Compile without starting the application. |
|
Compile when required and run in the foreground. |
|
Register the version in the local Aurum home. |
|
Package source and register the version on remote |
Project arguments can be passed after --:
aurum run . -- --config strategy.toml
See CLI Commands for command options.