{ "version": 6, "cmakeMinimumRequired": { "major": 3, "minor": 16, "patch": 0 }, "configurePresets": [ { "name": "base", "hidden": true, "description": "Base preset with common settings", "binaryDir": "${sourceDir}/build", "generator": "Ninja Multi-Config", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "YAZE_BUILD_APP": "ON", "YAZE_BUILD_LIB": "ON", "YAZE_BUILD_EMU": "ON", "YAZE_BUILD_CLI": "ON" } }, { "name": "dev", "inherits": "base", "displayName": "Developer Build", "description": "Full development build with all features", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "YAZE_BUILD_TESTS": "ON", "YAZE_ENABLE_GRPC": "ON", "YAZE_ENABLE_JSON": "ON", "YAZE_ENABLE_AI": "ON", "YAZE_ENABLE_ROM_TESTS": "ON" } }, { "name": "ci", "inherits": "base", "displayName": "CI Build", "description": "Continuous integration build", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "YAZE_BUILD_TESTS": "ON", "YAZE_ENABLE_GRPC": "ON", "YAZE_ENABLE_JSON": "ON", "YAZE_ENABLE_AI": "ON", "YAZE_ENABLE_ROM_TESTS": "OFF", "YAZE_MINIMAL_BUILD": "OFF" } }, { "name": "release", "inherits": "base", "displayName": "Release Build", "description": "Optimized release build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "YAZE_BUILD_TESTS": "OFF", "YAZE_ENABLE_GRPC": "ON", "YAZE_ENABLE_JSON": "ON", "YAZE_ENABLE_AI": "ON", "YAZE_ENABLE_LTO": "ON" } }, { "name": "minimal", "inherits": "base", "displayName": "Minimal Build", "description": "Minimal build for CI (no gRPC/AI)", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "YAZE_BUILD_TESTS": "ON", "YAZE_ENABLE_GRPC": "OFF", "YAZE_ENABLE_JSON": "ON", "YAZE_ENABLE_AI": "OFF", "YAZE_MINIMAL_BUILD": "ON" } }, { "name": "coverage", "inherits": "dev", "displayName": "Coverage Build", "description": "Debug build with code coverage", "cacheVariables": { "YAZE_ENABLE_COVERAGE": "ON", "CMAKE_CXX_FLAGS": "--coverage -g -O0", "CMAKE_C_FLAGS": "--coverage -g -O0", "CMAKE_EXE_LINKER_FLAGS": "--coverage" } }, { "name": "sanitizer", "inherits": "dev", "displayName": "Sanitizer Build", "description": "Debug build with AddressSanitizer", "cacheVariables": { "YAZE_ENABLE_SANITIZERS": "ON", "CMAKE_CXX_FLAGS": "-fsanitize=address -fno-omit-frame-pointer -g", "CMAKE_C_FLAGS": "-fsanitize=address -fno-omit-frame-pointer -g", "CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address" } }, { "name": "verbose", "inherits": "dev", "displayName": "Verbose Build", "description": "Development build with all warnings", "cacheVariables": { "YAZE_SUPPRESS_WARNINGS": "OFF" } } ], "buildPresets": [ { "name": "dev", "configurePreset": "dev", "displayName": "Developer Build", "jobs": 12 }, { "name": "ci", "configurePreset": "ci", "displayName": "CI Build", "jobs": 12 }, { "name": "release", "configurePreset": "release", "displayName": "Release Build", "jobs": 12 }, { "name": "minimal", "configurePreset": "minimal", "displayName": "Minimal Build", "jobs": 12 }, { "name": "coverage", "configurePreset": "coverage", "displayName": "Coverage Build", "jobs": 12 }, { "name": "sanitizer", "configurePreset": "sanitizer", "displayName": "Sanitizer Build", "jobs": 12 }, { "name": "verbose", "configurePreset": "verbose", "displayName": "Verbose Build", "jobs": 12 } ], "testPresets": [ { "name": "all", "configurePreset": "dev", "displayName": "All Tests", "description": "Run all tests including ROM-dependent tests" }, { "name": "stable", "configurePreset": "ci", "displayName": "Stable Tests", "description": "Run stable tests only (no ROM dependency)", "filter": { "include": { "label": "stable" } } }, { "name": "unit", "configurePreset": "ci", "displayName": "Unit Tests", "description": "Run unit tests only", "filter": { "include": { "label": "unit" } } }, { "name": "integration", "configurePreset": "ci", "displayName": "Integration Tests", "description": "Run integration tests only", "filter": { "include": { "label": "integration" } } } ], "packagePresets": [ { "name": "release", "configurePreset": "release", "displayName": "Release Package" }, { "name": "minimal", "configurePreset": "minimal", "displayName": "Minimal Package" } ] }