Install & Build¶
Zireael is a C project built with CMake presets and tested through CTest.
Prerequisites¶
Minimum:
- CMake
3.21+ - Ninja (recommended; presets assume Ninja)
- C11 compiler toolchain
Docs tooling (optional):
- Python
3.10+ - Doxygen (optional, for generated API HTML)
Canonical Entry Points¶
- Build presets:
CMakePresets.json - Tests:
ctest --output-on-failure - Guardrails:
bash scripts/guardrails.sh - Docs build:
bash scripts/docs.sh build
Configure, Build, Test¶
POSIX (Linux/macOS)¶
cmake --preset posix-clang-debug
cmake --build --preset posix-clang-debug
ctest --test-dir out/build/posix-clang-debug --output-on-failure
Windows (clang-cl)¶
.\scripts\vsdev.ps1
cmake --preset windows-clangcl-debug
cmake --build --preset windows-clangcl-debug
ctest --test-dir out/build/windows-clangcl-debug --output-on-failure
Optional Build Flags¶
Common CMake options (toggle per preset/toolchain flow):
-DZIREAEL_BUILD_TESTS=ON|OFF-DZIREAEL_BUILD_EXAMPLES=ON|OFF-DZIREAEL_BUILD_SHARED=ON|OFF
See CMakeLists.txt and docs/dev/build-system.md for the full target layout.
Guardrails (Required For CI Quality)¶
Guardrails currently enforce:
- no OS headers in
src/core,src/unicode,src/util - forbidden libc usage in deterministic core modules
Docs Build¶
This runs strict MkDocs and, when available, Doxygen generation.
It reuses .venv-docs and honors $PYTHON, so CI can pin an interpreter
without rebuilding the docs environment on each invocation.