Files
yaze/CMakePresets.json
scawful 27131ba449 feat: enable gRPC in CI builds and update Abseil dependencies
- Updated CI presets for Linux, macOS, and Windows to enable gRPC, improving build performance with caching.
- Adjusted Abseil inclusion logic to only include standalone Abseil when gRPC is disabled, ensuring compatibility and reducing unnecessary dependencies.
- Enhanced the list of exported Abseil targets from gRPC's bundled version for better utility access.

This change aims to streamline CI processes while maintaining the necessary dependencies for successful builds.
2025-11-05 11:19:43 -05:00

549 lines
15 KiB
JSON

{
"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": "windows-base",
"hidden": true,
"description": "Base Windows preset with MSVC/clang-cl support",
"binaryDir": "${sourceDir}/build",
"generator": "Ninja Multi-Config",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>",
"YAZE_BUILD_APP": "ON",
"YAZE_BUILD_LIB": "ON",
"YAZE_BUILD_EMU": "ON",
"YAZE_BUILD_CLI": "ON",
"YAZE_SUPPRESS_WARNINGS": "ON"
},
"architecture": {
"value": "x64",
"strategy": "external"
}
},
{
"name": "windows-vs-base",
"hidden": true,
"description": "Base Windows preset for Visual Studio Generator",
"binaryDir": "${sourceDir}/build",
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>",
"YAZE_BUILD_APP": "ON",
"YAZE_BUILD_LIB": "ON",
"YAZE_BUILD_EMU": "ON",
"YAZE_BUILD_CLI": "ON",
"YAZE_SUPPRESS_WARNINGS": "ON"
},
"architecture": {
"value": "x64",
"strategy": "set"
}
},
{
"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": "ci-linux",
"inherits": "base",
"displayName": "CI Build - Linux",
"description": "CI build with gRPC enabled (uses caching for speed)",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "ON",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_ROM_TESTS": "OFF",
"YAZE_MINIMAL_BUILD": "OFF"
}
},
{
"name": "ci-macos",
"inherits": "base",
"displayName": "CI Build - macOS",
"description": "CI build with gRPC enabled (uses caching for speed)",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "ON",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_ROM_TESTS": "OFF",
"YAZE_MINIMAL_BUILD": "OFF"
}
},
{
"name": "ci-windows",
"inherits": "windows-base",
"displayName": "CI Build - Windows",
"description": "CI build with gRPC enabled (uses MSVC-compatible version 1.67.1)",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "ON",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_ROM_TESTS": "OFF",
"YAZE_MINIMAL_BUILD": "OFF"
}
},
{
"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"
}
},
{
"name": "win-dbg",
"inherits": "windows-base",
"displayName": "Windows Debug (Ninja)",
"description": "Debug build for Windows with Ninja generator",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF"
}
},
{
"name": "win-dbg-v",
"inherits": "win-dbg",
"displayName": "Windows Debug Verbose",
"description": "Debug build with verbose warnings",
"cacheVariables": {
"YAZE_SUPPRESS_WARNINGS": "OFF"
}
},
{
"name": "win-rel",
"inherits": "windows-base",
"displayName": "Windows Release (Ninja)",
"description": "Release build for Windows with Ninja generator",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"YAZE_BUILD_TESTS": "OFF",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_LTO": "ON"
}
},
{
"name": "win-dev",
"inherits": "windows-base",
"displayName": "Windows Development",
"description": "Development build with ROM tests",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_ROM_TESTS": "ON"
}
},
{
"name": "win-ai",
"inherits": "windows-base",
"displayName": "Windows AI Development",
"description": "Full development build with AI features and gRPC",
"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": "win-z3ed",
"inherits": "windows-base",
"displayName": "Windows z3ed CLI",
"description": "z3ed CLI with AI agent support",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"YAZE_BUILD_TESTS": "OFF",
"YAZE_BUILD_CLI": "ON",
"YAZE_ENABLE_GRPC": "ON",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "ON"
}
},
{
"name": "win-arm",
"inherits": "windows-base",
"displayName": "Windows ARM64 Debug",
"description": "Debug build for Windows ARM64",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF"
},
"architecture": {
"value": "ARM64",
"strategy": "external"
}
},
{
"name": "win-arm-rel",
"inherits": "win-arm",
"displayName": "Windows ARM64 Release",
"description": "Release build for Windows ARM64",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"YAZE_BUILD_TESTS": "OFF",
"YAZE_ENABLE_LTO": "ON"
}
},
{
"name": "win-vs-dbg",
"inherits": "windows-vs-base",
"displayName": "Windows Debug (Visual Studio)",
"description": "Debug build for Visual Studio IDE",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"YAZE_BUILD_TESTS": "ON",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF"
}
},
{
"name": "win-vs-rel",
"inherits": "windows-vs-base",
"displayName": "Windows Release (Visual Studio)",
"description": "Release build for Visual Studio IDE",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"YAZE_BUILD_TESTS": "OFF",
"YAZE_ENABLE_GRPC": "OFF",
"YAZE_ENABLE_JSON": "ON",
"YAZE_ENABLE_AI": "OFF",
"YAZE_ENABLE_LTO": "ON"
}
},
{
"name": "win-vs-ai",
"inherits": "windows-vs-base",
"displayName": "Windows AI Development (Visual Studio)",
"description": "Full development build with AI features for Visual Studio",
"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"
}
}
],
"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": "ci-linux",
"configurePreset": "ci-linux",
"displayName": "CI Build - Linux",
"jobs": 12
},
{
"name": "ci-macos",
"configurePreset": "ci-macos",
"displayName": "CI Build - macOS",
"jobs": 12
},
{
"name": "ci-windows",
"configurePreset": "ci-windows",
"displayName": "CI Build - Windows",
"configuration": "RelWithDebInfo",
"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
},
{
"name": "win-dbg",
"configurePreset": "win-dbg",
"displayName": "Windows Debug Build",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-dbg-v",
"configurePreset": "win-dbg-v",
"displayName": "Windows Debug Verbose Build",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-rel",
"configurePreset": "win-rel",
"displayName": "Windows Release Build",
"configuration": "Release",
"jobs": 12
},
{
"name": "win-dev",
"configurePreset": "win-dev",
"displayName": "Windows Development Build",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-ai",
"configurePreset": "win-ai",
"displayName": "Windows AI Development Build",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-z3ed",
"configurePreset": "win-z3ed",
"displayName": "Windows z3ed CLI Build",
"configuration": "Release",
"jobs": 12
},
{
"name": "win-arm",
"configurePreset": "win-arm",
"displayName": "Windows ARM64 Debug Build",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-arm-rel",
"configurePreset": "win-arm-rel",
"displayName": "Windows ARM64 Release Build",
"configuration": "Release",
"jobs": 12
},
{
"name": "win-vs-dbg",
"configurePreset": "win-vs-dbg",
"displayName": "Windows Debug Build (Visual Studio)",
"configuration": "Debug",
"jobs": 12
},
{
"name": "win-vs-rel",
"configurePreset": "win-vs-rel",
"displayName": "Windows Release Build (Visual Studio)",
"configuration": "Release",
"jobs": 12
},
{
"name": "win-vs-ai",
"configurePreset": "win-vs-ai",
"displayName": "Windows AI Development Build (Visual Studio)",
"configuration": "Debug",
"jobs": 12
}
],
"testPresets": [
{
"name": "all",
"configurePreset": "dev",
"displayName": "All Tests",
"description": "Run all tests including ROM-dependent tests"
},
{
"name": "stable",
"configurePreset": "minimal",
"displayName": "Stable Tests",
"description": "Run stable tests only (no ROM dependency)",
"filter": {
"include": {
"label": "stable"
}
}
},
{
"name": "unit",
"configurePreset": "minimal",
"displayName": "Unit Tests",
"description": "Run unit tests only",
"filter": {
"include": {
"label": "unit"
}
}
},
{
"name": "integration",
"configurePreset": "minimal",
"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"
}
]
}