- 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.
211 lines
5.2 KiB
JSON
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"
|
|
}
|
|
]
|
|
} |