645 lines
17 KiB
JSON
645 lines
17 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",
|
|
"cacheVariables": {
|
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
|
"YAZE_BUILD_TESTS": "ON",
|
|
"YAZE_BUILD_APP": "ON",
|
|
"YAZE_BUILD_LIB": "ON",
|
|
"YAZE_BUILD_Z3ED": "ON",
|
|
"YAZE_BUILD_EMU": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "_unix",
|
|
"hidden": true,
|
|
"description": "Unix/macOS/Linux base with Makefiles",
|
|
"generator": "Unix Makefiles",
|
|
"binaryDir": "${sourceDir}/build",
|
|
"condition": {
|
|
"type": "notEquals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "_quiet",
|
|
"hidden": true,
|
|
"description": "Suppress warnings (default)",
|
|
"cacheVariables": {
|
|
"YAZE_SUPPRESS_WARNINGS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "_verbose",
|
|
"hidden": true,
|
|
"description": "Show all warnings and extra diagnostics",
|
|
"cacheVariables": {
|
|
"YAZE_SUPPRESS_WARNINGS": "OFF"
|
|
}
|
|
},
|
|
{
|
|
"name": "_mac",
|
|
"hidden": true,
|
|
"description": "macOS base configuration",
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Darwin"
|
|
},
|
|
"toolchainFile": "${sourceDir}/cmake/llvm-brew.toolchain.cmake",
|
|
"cacheVariables": {
|
|
"CMAKE_OSX_DEPLOYMENT_TARGET": "11.0",
|
|
"CMAKE_C_COMPILER": "/opt/homebrew/opt/llvm@18/bin/clang",
|
|
"CMAKE_CXX_COMPILER": "/opt/homebrew/opt/llvm@18/bin/clang++",
|
|
"CMAKE_CXX_FLAGS": "-isystem /opt/homebrew/opt/llvm@18/include/c++/v1"
|
|
}
|
|
},
|
|
{
|
|
"name": "_win",
|
|
"hidden": true,
|
|
"description": "Windows base configuration with vcpkg static triplet",
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
},
|
|
"generator": "Visual Studio 17 2022",
|
|
"cacheVariables": {
|
|
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
|
|
"VCPKG_MANIFEST_MODE": "ON",
|
|
"VCPKG_TARGET_TRIPLET": "x64-windows-static"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-dbg",
|
|
"displayName": "macOS Debug (ARM64)",
|
|
"description": "macOS ARM64 debug build (warnings off)",
|
|
"inherits": ["_base", "_unix", "_mac", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_OSX_ARCHITECTURES": "arm64"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-dbg-v",
|
|
"displayName": "macOS Debug Verbose (ARM64)",
|
|
"description": "macOS ARM64 debug build with all warnings",
|
|
"inherits": ["_base", "_unix", "_mac", "_verbose"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_OSX_ARCHITECTURES": "arm64"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-rel",
|
|
"displayName": "macOS Release (ARM64)",
|
|
"description": "macOS ARM64 release build (warnings off)",
|
|
"inherits": ["_base", "_unix", "_mac", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"CMAKE_OSX_ARCHITECTURES": "arm64",
|
|
"YAZE_BUILD_TESTS": "OFF"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-x64",
|
|
"displayName": "macOS Debug (x86_64)",
|
|
"description": "macOS x86_64 debug build (warnings off)",
|
|
"inherits": ["_base", "_mac", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_OSX_ARCHITECTURES": "x86_64",
|
|
"CMAKE_OSX_DEPLOYMENT_TARGET": "10.15"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-uni",
|
|
"displayName": "macOS Universal",
|
|
"description": "macOS universal binary (ARM64 + x86_64)",
|
|
"inherits": ["_base", "_mac", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"CMAKE_OSX_ARCHITECTURES": "arm64;x86_64",
|
|
"CMAKE_OSX_DEPLOYMENT_TARGET": "10.15"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-dev",
|
|
"displayName": "macOS Dev",
|
|
"description": "macOS development with ROM tests",
|
|
"inherits": ["_base", "_unix", "_mac", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_OSX_ARCHITECTURES": "arm64",
|
|
"YAZE_ENABLE_ROM_TESTS": "ON",
|
|
"YAZE_TEST_ROM_PATH": "${sourceDir}/zelda3.sfc"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-ai",
|
|
"displayName": "macOS AI",
|
|
"description": "macOS with AI agent (z3ed + JSON + gRPC + networking)",
|
|
"inherits": "mac-dev",
|
|
"binaryDir": "${sourceDir}/build_ai",
|
|
"cacheVariables": {
|
|
"Z3ED_AI": "ON",
|
|
"YAZE_WITH_JSON": "ON",
|
|
"YAZE_WITH_GRPC": "ON",
|
|
"YAZE_BUILD_Z3ED": "ON",
|
|
"YAZE_BUILD_EMU": "ON",
|
|
"YAZE_BUILD_TESTS": "ON",
|
|
"CMAKE_BUILD_TYPE": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-z3ed",
|
|
"displayName": "macOS z3ed",
|
|
"description": "macOS z3ed CLI with agent support",
|
|
"inherits": "mac-ai",
|
|
"toolchainFile": "${sourceDir}/cmake/llvm-brew.toolchain.cmake",
|
|
"binaryDir": "${sourceDir}/build",
|
|
"cacheVariables": {
|
|
"Z3ED_AI": "ON",
|
|
"YAZE_WITH_JSON": "ON",
|
|
"YAZE_WITH_GRPC": "ON",
|
|
"YAZE_BUILD_Z3ED": "ON",
|
|
"YAZE_BUILD_EMU": "ON",
|
|
"YAZE_BUILD_TESTS": "ON",
|
|
"CMAKE_BUILD_TYPE": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"name": "mac-rooms",
|
|
"displayName": "macOS Rooms",
|
|
"description": "macOS dungeon editor development",
|
|
"binaryDir": "${sourceDir}/build_rooms",
|
|
"inherits": "mac-dev",
|
|
"cacheVariables": {
|
|
"YAZE_BUILD_EMU": "OFF",
|
|
"YAZE_BUILD_Z3ED": "OFF",
|
|
"YAZE_MINIMAL_BUILD": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-dbg",
|
|
"displayName": "Windows Debug (x64)",
|
|
"description": "Windows x64 debug build with static vcpkg (warnings off)",
|
|
"inherits": ["_base", "_win", "_quiet"],
|
|
"architecture": "x64",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-dbg-v",
|
|
"displayName": "Windows Debug Verbose (x64)",
|
|
"description": "Windows x64 debug build with static vcpkg and all warnings",
|
|
"inherits": ["_base", "_win", "_verbose"],
|
|
"architecture": "x64",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-rel",
|
|
"displayName": "Windows Release (x64)",
|
|
"description": "Windows x64 release build with static vcpkg (warnings off)",
|
|
"inherits": ["_base", "_win", "_quiet"],
|
|
"architecture": "x64",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"YAZE_BUILD_TESTS": "OFF"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-arm",
|
|
"displayName": "Windows ARM64 Debug",
|
|
"description": "Windows ARM64 debug build (warnings off)",
|
|
"inherits": ["_base", "_win", "_quiet"],
|
|
"architecture": "arm64",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"VCPKG_TARGET_TRIPLET": "arm64-windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-arm-rel",
|
|
"displayName": "Windows ARM64 Release",
|
|
"description": "Windows ARM64 release build (warnings off)",
|
|
"inherits": ["_base", "_win", "_quiet"],
|
|
"architecture": "arm64",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"VCPKG_TARGET_TRIPLET": "arm64-windows",
|
|
"YAZE_BUILD_TESTS": "OFF"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-dev",
|
|
"displayName": "Windows Dev",
|
|
"description": "Windows development with ROM tests",
|
|
"inherits": "win-dbg",
|
|
"cacheVariables": {
|
|
"YAZE_ENABLE_ROM_TESTS": "ON",
|
|
"YAZE_TEST_ROM_PATH": "${sourceDir}/zelda3.sfc"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-ai",
|
|
"displayName": "1. Windows AI + z3ed",
|
|
"description": "Windows with AI agent (z3ed + JSON + gRPC + networking)",
|
|
"inherits": "win-dev",
|
|
"cacheVariables": {
|
|
"Z3ED_AI": "ON",
|
|
"YAZE_WITH_JSON": "ON",
|
|
"YAZE_WITH_GRPC": "ON",
|
|
"YAZE_BUILD_Z3ED": "ON",
|
|
"YAZE_BUILD_EMU": "ON",
|
|
"CMAKE_CXX_COMPILER": "cl",
|
|
"CMAKE_C_COMPILER": "cl"
|
|
}
|
|
},
|
|
{
|
|
"name": "win-z3ed",
|
|
"displayName": "2. Windows z3ed CLI",
|
|
"description": "Windows z3ed CLI with agent and networking support",
|
|
"inherits": "win-ai"
|
|
},
|
|
{
|
|
"name": "lin-dbg",
|
|
"displayName": "Linux Debug",
|
|
"description": "Linux debug build with GCC (warnings off)",
|
|
"inherits": ["_base", "_unix", "_quiet"],
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Linux"
|
|
},
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_CXX_COMPILER": "g++",
|
|
"CMAKE_C_COMPILER": "gcc"
|
|
}
|
|
},
|
|
{
|
|
"name": "lin-clang",
|
|
"displayName": "Linux Clang",
|
|
"description": "Linux debug build with Clang (warnings off)",
|
|
"inherits": ["_base", "_unix", "_quiet"],
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Linux"
|
|
},
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"CMAKE_C_COMPILER": "clang"
|
|
}
|
|
},
|
|
{
|
|
"name": "ci",
|
|
"displayName": "9. CI Build",
|
|
"description": "Continuous integration build (no ROM tests)",
|
|
"inherits": ["_base", "_unix", "_quiet"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
|
"YAZE_ENABLE_ROM_TESTS": "OFF",
|
|
"YAZE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "asan",
|
|
"displayName": "8. AddressSanitizer",
|
|
"description": "Debug build with AddressSanitizer",
|
|
"inherits": ["_base", "_unix"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"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",
|
|
"CMAKE_SHARED_LINKER_FLAGS": "-fsanitize=address"
|
|
}
|
|
},
|
|
{
|
|
"name": "coverage",
|
|
"displayName": "7. Coverage",
|
|
"description": "Debug build with code coverage",
|
|
"inherits": ["_base", "_unix"],
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_CXX_FLAGS": "--coverage -g -O0",
|
|
"CMAKE_C_FLAGS": "--coverage -g -O0",
|
|
"CMAKE_EXE_LINKER_FLAGS": "--coverage"
|
|
}
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{
|
|
"name": "mac-dbg",
|
|
"configurePreset": "mac-dbg",
|
|
"displayName": "macOS Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-dbg-v",
|
|
"configurePreset": "mac-dbg-v",
|
|
"displayName": "macOS Debug Verbose",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-rel",
|
|
"configurePreset": "mac-rel",
|
|
"displayName": "macOS Release",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-x64",
|
|
"configurePreset": "mac-x64",
|
|
"displayName": "macOS x86_64",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-uni",
|
|
"configurePreset": "mac-uni",
|
|
"displayName": "macOS Universal",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-dev",
|
|
"configurePreset": "mac-dev",
|
|
"displayName": "macOS Dev",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-ai",
|
|
"configurePreset": "mac-ai",
|
|
"displayName": "macOS AI",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-z3ed",
|
|
"configurePreset": "mac-z3ed",
|
|
"displayName": "macOS z3ed",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "mac-rooms",
|
|
"configurePreset": "mac-rooms",
|
|
"displayName": "macOS Rooms",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-dbg",
|
|
"configurePreset": "win-dbg",
|
|
"displayName": "Windows Debug",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-dbg-v",
|
|
"configurePreset": "win-dbg-v",
|
|
"displayName": "Windows Debug Verbose",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-rel",
|
|
"configurePreset": "win-rel",
|
|
"displayName": "Windows Release",
|
|
"configuration": "Release",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-arm",
|
|
"configurePreset": "win-arm",
|
|
"displayName": "Windows ARM64",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-arm-rel",
|
|
"configurePreset": "win-arm-rel",
|
|
"displayName": "Windows ARM64 Release",
|
|
"configuration": "Release",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-dev",
|
|
"configurePreset": "win-dev",
|
|
"displayName": "Windows Dev",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-ai",
|
|
"configurePreset": "win-ai",
|
|
"displayName": "1. Windows AI + z3ed",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "win-z3ed",
|
|
"configurePreset": "win-z3ed",
|
|
"displayName": "2. Windows z3ed CLI",
|
|
"configuration": "Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "lin-dbg",
|
|
"configurePreset": "lin-dbg",
|
|
"displayName": "Linux Debug",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "lin-clang",
|
|
"configurePreset": "lin-clang",
|
|
"displayName": "Linux Clang",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "ci",
|
|
"configurePreset": "ci",
|
|
"displayName": "9. CI Build",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "asan",
|
|
"configurePreset": "asan",
|
|
"displayName": "8. AddressSanitizer",
|
|
"jobs": 12
|
|
},
|
|
{
|
|
"name": "coverage",
|
|
"configurePreset": "coverage",
|
|
"displayName": "7. Coverage",
|
|
"jobs": 12
|
|
}
|
|
],
|
|
"testPresets": [
|
|
{
|
|
"name": "all",
|
|
"configurePreset": "mac-dev",
|
|
"displayName": "Run all tests",
|
|
"description": "Runs all tests, including ROM-dependent and experimental tests."
|
|
},
|
|
{
|
|
"name": "stable",
|
|
"configurePreset": "ci",
|
|
"displayName": "Stable tests",
|
|
"description": "Runs tests marked with the 'stable' label.",
|
|
"filter": {
|
|
"include": {
|
|
"label": "stable"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "rom-dependent",
|
|
"configurePreset": "mac-dev",
|
|
"displayName": "ROM-dependent tests",
|
|
"description": "Runs tests that require a ROM file.",
|
|
"filter": {
|
|
"include": {
|
|
"label": "rom_dependent"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "gui",
|
|
"configurePreset": "mac-dev",
|
|
"displayName": "GUI tests",
|
|
"description": "Runs GUI-based tests.",
|
|
"filter": {
|
|
"include": {
|
|
"label": "gui"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "experimental",
|
|
"configurePreset": "mac-dev",
|
|
"displayName": "Experimental tests",
|
|
"description": "Runs tests marked as 'experimental'.",
|
|
"filter": {
|
|
"include": {
|
|
"label": "experimental"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "benchmark",
|
|
"configurePreset": "mac-rel",
|
|
"displayName": "Benchmark tests",
|
|
"description": "Runs performance benchmark tests.",
|
|
"filter": {
|
|
"include": {
|
|
"label": "benchmark"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"packagePresets": [
|
|
{
|
|
"name": "mac",
|
|
"configurePreset": "mac-rel",
|
|
"displayName": "macOS Package (ARM64)"
|
|
},
|
|
{
|
|
"name": "mac-uni",
|
|
"configurePreset": "mac-uni",
|
|
"displayName": "macOS Package (Universal)"
|
|
},
|
|
{
|
|
"name": "win",
|
|
"configurePreset": "win-rel",
|
|
"displayName": "Windows Package (x64)"
|
|
},
|
|
{
|
|
"name": "win-arm",
|
|
"configurePreset": "win-arm-rel",
|
|
"displayName": "Windows Package (ARM64)"
|
|
}
|
|
],
|
|
"workflowPresets": [
|
|
{
|
|
"name": "dev",
|
|
"displayName": "Development Workflow",
|
|
"steps": [
|
|
{
|
|
"type": "configure",
|
|
"name": "mac-dev"
|
|
},
|
|
{
|
|
"type": "build",
|
|
"name": "mac-dev"
|
|
},
|
|
{
|
|
"type": "test",
|
|
"name": "all"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ci",
|
|
"displayName": "CI Workflow",
|
|
"steps": [
|
|
{
|
|
"type": "configure",
|
|
"name": "ci"
|
|
},
|
|
{
|
|
"type": "build",
|
|
"name": "ci"
|
|
},
|
|
{
|
|
"type": "test",
|
|
"name": "stable"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "release",
|
|
"displayName": "Release Workflow",
|
|
"steps": [
|
|
{
|
|
"type": "configure",
|
|
"name": "mac-uni"
|
|
},
|
|
{
|
|
"type": "build",
|
|
"name": "mac-uni"
|
|
},
|
|
{
|
|
"type": "package",
|
|
"name": "mac-uni"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "format-check",
|
|
"displayName": "Check Code Formatting",
|
|
"steps": [
|
|
{
|
|
"type": "configure",
|
|
"name": "mac-dev"
|
|
},
|
|
{
|
|
"type": "build",
|
|
"name": "mac-dev"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |