This document explains the reorganized CMake preset system for Yaze.
macos-dev-z3ed-ai, just mac-ai-v suffix for verbose (e.g., mac-dbg-v)mac-, win-, lin- for easy identification| Preset | Description | Arch | Warnings | Notes |
|---|---|---|---|---|
mac-dbg | Debug build | Host | Off | Tests enabled |
mac-dbg-v | Debug build (verbose) | Host | On | Extra warnings |
mac-rel | Release build | Host | Off | LTO enabled |
mac-dev | Development build | Host | Off | ROM tests enabled |
mac-ai | AI + gRPC dev | Host | Off | Agent UI + automation |
mac-ai-fast | AI dev (system gRPC) | Host | Off | brew install grpc protobuf abseil |
mac-uni | Universal binary | arm64 + x86_64 | Off | Release packaging |
mac-sdl3 | SDL3 build | Host | Off | Experimental |
mac-test | Fast test build | Host | Off | RelWithDebInfo |
| Preset | Description | Arch | Generator | Notes |
|---|---|---|---|---|
win-dbg | Debug build | x64 | Ninja | Tests enabled |
win-dbg-v | Debug build (verbose) | x64 | Ninja | Extra warnings |
win-rel | Release build | x64 | Ninja | LTO enabled |
win-dev | Development build | x64 | Ninja | ROM tests enabled |
win-ai | AI + gRPC dev | x64 | Ninja | Agent UI + automation |
win-z3ed | z3ed CLI | x64 | Ninja | CLI stack only |
win-arm | Debug ARM64 | ARM64 | Ninja | |
win-arm-rel | Release ARM64 | ARM64 | Ninja | |
win-vs-dbg | Debug build | x64 | Visual Studio | |
win-vs-rel | Release build | x64 | Visual Studio | |
win-vs-ai | AI + gRPC dev | x64 | Visual Studio | |
win-sdl3 | SDL3 build | x64 | Ninja | Experimental |
win-test | Fast test build | x64 | Ninja | RelWithDebInfo |
| Preset | Description | Compiler | Notes |
|---|---|---|---|
lin-dbg | Debug build | GCC/Clang | Tests enabled |
lin-dbg-v | Debug build (verbose) | GCC/Clang | Extra warnings |
lin-rel | Release build | GCC/Clang | LTO enabled |
lin-dev | Development build | GCC/Clang | ROM tests enabled |
lin-ai | AI + gRPC dev | GCC/Clang | Agent UI + automation |
lin-sdl3 | SDL3 build | GCC/Clang | Experimental |
lin-test | Fast test build | GCC/Clang | RelWithDebInfo |
| Preset | Description |
|---|---|
ci-linux | Linux CI build |
ci-macos | macOS CI build |
ci-windows | Windows CI build |
ci-windows-ai | Windows AI/automation CI build |
| Preset | Description |
|---|---|
wasm-debug | WebAssembly debug build |
wasm-release | WebAssembly release build |
wasm-crash-repro | Minimal repro build |
wasm-ai | WebAssembly AI build |
Run with ctest --preset <name>.
| Preset | Description |
|---|---|
all | All tests (including ROM-dependent) |
stable | Stable tests only |
unit | Unit tests only |
integration | Integration tests only |
fast | macOS fast test preset |
fast-win | Windows fast test preset |
fast-lin | Linux fast test preset |
stable-ai | Stable tests against ci-windows-ai |
unit-ai | Unit tests against ci-windows-ai |
integration-ai | Integration tests against ci-windows-ai |
By default, all presets suppress compiler warnings with -w for a cleaner build experience.
-v suffix (e.g., mac-dbg-v, win-dbg-v)YAZE_SUPPRESS_WARNINGS=OFF manually: mac-dbg, mac-rel, mac-ai, mac-dev, etc.mac-* presets (they target the host arch).mac-uni (arm64 + x86_64)win-dbg, win-rel, win-ai, etc.win-arm, win-arm-relMost presets use build/. WASM presets use build-wasm/. Keep only these two build directories in the repo to avoid bloat. For isolated agent builds, point binaryDir to a path outside the repo via CMakeUserPresets.json.
To avoid re-downloading dependencies after cleaning build dirs, set shared caches via CMakeUserPresets.json (see CMakeUserPresets.json.example) or environment variables:
For scripts and the agent build tool, you can also set YAZE_BUILD_DIR to an external path (e.g., $HOME/.cache/yaze/build) to keep the working tree clean.
Common CMake options you can override:
After configuring with a new preset, copy the compile commands for IDE support:
This ensures clangd and other LSP servers can find headers and understand build flags.
Old preset names have been simplified:
| Old Name | New Name |
|---|---|
macos-dev-z3ed-ai | mac-ai |
macos-debug | mac-dbg |
macos-release | mac-rel |
macos-debug-universal | mac-uni |
windows-debug | win-dbg |
windows-release | win-rel |
windows-arm64-debug | win-arm |
linux-debug | lin-dbg |
-v suffixcmake output for ✓ Warnings suppressed messagerm -rf build && cmake --preset mac-dbgcmake --preset <your-preset> to regenerate compile_commands.jsoncp build/compile_commands.json .cmake --preset <your-preset>CPM_SOURCE_CACHE to a populated cache directorybrew install openssl (macOS)