Use this document as the single source of truth for configuring, building, and testing YAZE across platforms. Other guides (README, CLAUDE.md, GEMINI.md, etc.) should link here instead of duplicating steps.
git clone --recursive https://github.com/scawful/yaze.git./scripts/verify-build-environment.sh --fix.\scripts\verify-build-environment.ps1 -FixIssuesUse cmake --preset <name> followed by cmake --build --preset <name> [--target …].
| Preset | Platform(s) | Notes |
|---|---|---|
mac-dbg, lin-dbg, win-dbg | macOS/Linux/Windows | Standard debug builds, tests on by default. |
mac-ai, lin-ai, win-ai | macOS/Linux/Windows | Enables gRPC, agent UI, z3ed, and AI runtime. |
mac-rel, lin-rel, win-rel | macOS/Linux/Windows | Optimized release builds. |
mac-dev, lin-dev, win-dev | macOS/Linux/Windows | Development builds with ROM-dependent tests enabled. |
mac-uni | macOS | Universal binary (ARM64 + x86_64) for distribution. |
ci-* presets | Platform-specific | Mirrors CI matrix; see CMakePresets.json. |
Verbose builds: add -v suffix (e.g., mac-dbg-v, lin-dbg-v, win-dbg-v) to turn off compiler warning suppression.
build or build_test directories.build_ai, build_agent, etc.) to avoid clobbering user builds.*-ai presets and target only the binaries you need (yaze, z3ed, yaze_test, …).scripts/agents/windows-smoke-build.ps1 for quick builds and scripts/agents/run-tests.sh (or its PowerShell equivalent) for test runs so preset + generator settings stay consistent.Default test suites run automatically with debug/dev presets. Include stable unit/integration tests and GUI smoke tests:
For tests requiring Zelda3 ROM file (ASAR ROM tests, complete edit workflows, ZSCustomOverworld upgrades):
For AI-powered feature tests (requires YAZE_ENABLE_AI_RUNTIME=ON):
| Preset | Stable | GUI | ROM-Dep | Experimental |
|---|---|---|---|---|
mac-dbg, lin-dbg, win-dbg | Yes | Yes | No | No |
mac-ai, lin-ai, win-ai | Yes | Yes | No | Yes |
mac-dev, lin-dev, win-dev | Yes | Yes | Yes | No |
mac-rel, lin-rel, win-rel | No | No | No | No |
YAZE_TEST_ROM_PATH - Set ROM path for ROM-dependent tests (or use -DYAZE_TEST_ROM_PATH=... in CMake)YAZE_SKIP_ROM_TESTS - Skip ROM tests if set (useful for CI without ROM)YAZE_ENABLE_UI_TESTS - Enable GUI tests (default if display available)docs/public/build/troubleshooting.mddocs/public/build/platform-compatibility.mddocs/internal/agents/coordination-board.md before running builds/tests.