This guide reflects the current public repository layout and CMake options.
Primary CMake options from the root CMakeLists.txt:
| Option | Description | Default |
|---|---|---|
Aestra_CORE_MODE |
Build without premium/private modules and use public assets | ON in public-only checkouts |
AESTRA_ENABLE_UI |
Build the desktop UI application | ON |
AESTRA_HEADLESS_ONLY |
Force a headless-only configuration | OFF |
AESTRA_ENABLE_TESTS |
Build tests under Tests/ |
ON |
git clone https://github.com/currentsuspect/Aestra.git
cd Aestra
pwsh -File scripts/install-hooks.ps1
cmake -S . -B build -DAestra_CORE_MODE=ON -DAESTRA_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
cmake -S . -B build-headless -DAestra_CORE_MODE=ON -DAESTRA_HEADLESS_ONLY=ON -DAESTRA_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build-headless --config Release --parallel
With multi-config generators such as Visual Studio, binaries are typically under:
build/bin/Releasebuild-headless/bin/ReleaseCommon targets include:
AestraHeadlessUbuntu/Debian example:
sudo apt update
sudo apt install build-essential cmake git libasound2-dev libx11-dev libxrandr-dev libxinerama-dev libgl1-mesa-dev
git clone https://github.com/currentsuspect/Aestra.git
cd Aestra
cmake -S . -B build -DAestra_CORE_MODE=ON -DAESTRA_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
cmake -S . -B build-headless -DAestra_CORE_MODE=ON -DAESTRA_HEADLESS_ONLY=ON -DAESTRA_ENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build-headless --parallel
Run the configured test set with:
ctest --test-dir build --output-on-failure
For a headless tree:
ctest --test-dir build-headless --output-on-failure
There is also a helper script in scripts/run-confidence-suite.sh.
Aestra_CORE_MODEThe public repo includes aestra-core/cmake/AestraCoreMode.cmake, which forces Aestra_CORE_MODE=ON when premium modules are not present. You can still pass it explicitly in commands so CI and contributor instructions stay unambiguous.
Check whether AESTRA_HEADLESS_ONLY=ON was set, or whether you are intentionally working in a headless build tree.
The root CMakeLists.txt will fall back to vendored dependencies only if the expected directories are present. Missing warnings usually mean the corresponding system package or vendored dependency tree is absent.
Prefer checking build/bin or build/bin/<Config>. Older docs may still mention outdated target names or output folders.