Files
yaze/CMakePresets.json
scawful d07c0abae8 chore: enhance clangd and CI configurations for improved development experience
- Updated `.clangd` configuration to include additional include paths and feature flags tailored for ROM hacking workflows, optimizing IntelliSense support.
- Introduced `.pre-commit-config.yaml` for managing code quality checks and formatting, ensuring consistent code style across the project.
- Added `cmake-format.yaml` for CMake formatting configuration, promoting adherence to style guidelines.
- Enhanced CI workflows to include new actions for testing and building, improving overall reliability and efficiency in the development process.

Benefits:
- Streamlines development setup and improves code quality through automated checks.
- Facilitates better collaboration by ensuring consistent coding standards and configurations.
2025-10-31 20:19:22 -04:00

211 lines
5.2 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": "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"
}
]
}