- Bump project version to 0.3.2 in CMakeLists.txt, vcpkg.json, and relevant headers. - Increase Windows stack size to 8MB to prevent stack overflow during asset loading. - Isolate development utilities from CI builds to ensure cleaner release artifacts. - Implement comprehensive bounds checking and fix segmentation faults in the graphics system. - Update documentation to reflect new build instructions and stability improvements.
648 lines
17 KiB
Markdown
648 lines
17 KiB
Markdown
# Build Instructions
|
|
|
|
YAZE uses CMake 3.16+ with modern target-based configuration. The project includes comprehensive Windows support with Visual Studio integration, vcpkg package management, and automated setup scripts.
|
|
|
|
## Quick Start
|
|
|
|
### macOS (Apple Silicon)
|
|
```bash
|
|
cmake --preset debug
|
|
cmake --build build
|
|
```
|
|
|
|
### Linux
|
|
```bash
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Debug
|
|
cmake --build build
|
|
```
|
|
|
|
### Windows (Recommended - CMake Mode)
|
|
```powershell
|
|
# Automated setup (first time only)
|
|
.\scripts\setup-windows-dev.ps1
|
|
|
|
# Recommended: Use Visual Studio's built-in CMake support
|
|
# 1. Open Visual Studio 2022
|
|
# 2. Select "Open a local folder"
|
|
# 3. Navigate to the yaze directory
|
|
# 4. Visual Studio will detect CMakeLists.txt automatically
|
|
# 5. Select configuration (Debug/Release) from the dropdown
|
|
# 6. Press F5 to build and run
|
|
|
|
# Alternative: Command line build
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Debug
|
|
cmake --build build --config Debug
|
|
|
|
# Legacy: Generate Visual Studio solution (not recommended)
|
|
# python scripts/generate-vs-projects.py # Less maintainable, use CMake mode instead
|
|
```
|
|
|
|
### Minimal Build (CI/Fast)
|
|
```bash
|
|
cmake -B build -DYAZE_MINIMAL_BUILD=ON
|
|
cmake --build build
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
### Required
|
|
- CMake 3.16+
|
|
- C++23 compiler (GCC 13+, Clang 16+, MSVC 2019+)
|
|
- Git with submodule support
|
|
|
|
### Bundled Libraries
|
|
- SDL2, ImGui, Abseil, Asar, GoogleTest
|
|
- Native File Dialog Extended (NFD)
|
|
- All dependencies included in repository
|
|
|
|
## Platform Setup
|
|
|
|
### macOS
|
|
```bash
|
|
# Install Xcode Command Line Tools
|
|
xcode-select --install
|
|
|
|
# Optional: Install Homebrew dependencies (auto-detected)
|
|
brew install cmake pkg-config
|
|
```
|
|
|
|
### Linux (Ubuntu/Debian)
|
|
```bash
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential cmake ninja-build pkg-config \
|
|
libgtk-3-dev libdbus-1-dev
|
|
```
|
|
|
|
### Windows
|
|
|
|
#### Automated Setup (Recommended)
|
|
The project includes comprehensive setup scripts for Windows development:
|
|
|
|
```powershell
|
|
# Complete development environment setup
|
|
.\scripts\setup-windows-dev.ps1
|
|
|
|
# Generate Visual Studio project files (with proper vcpkg integration)
|
|
python scripts/generate-vs-projects.py
|
|
|
|
# Test CMake configuration
|
|
.\scripts\test-cmake-config.ps1
|
|
```
|
|
|
|
**What the setup script installs:**
|
|
- Chocolatey package manager
|
|
- CMake 3.16+
|
|
- Git, Ninja, Python 3
|
|
- Visual Studio 2022 detection and verification
|
|
|
|
#### Manual Setup Options
|
|
|
|
**Option 1 - Minimal (CI/Fast Builds):**
|
|
- Visual Studio 2019+ with C++ CMake tools
|
|
- No additional dependencies needed (all bundled)
|
|
|
|
**Option 2 - Full Development with vcpkg:**
|
|
- Visual Studio 2019+ with C++ CMake tools
|
|
- vcpkg package manager for dependency management
|
|
|
|
#### vcpkg Integration
|
|
|
|
**Automatic Setup:**
|
|
```powershell
|
|
# PowerShell
|
|
.\scripts\setup-windows-dev.ps1
|
|
|
|
# Command Prompt
|
|
scripts\setup-windows-dev.bat
|
|
```
|
|
|
|
**Manual vcpkg Setup:**
|
|
```cmd
|
|
git clone https://github.com/Microsoft/vcpkg.git
|
|
cd vcpkg
|
|
.\bootstrap-vcpkg.bat
|
|
.\vcpkg.exe integrate install
|
|
set VCPKG_ROOT=%CD%
|
|
```
|
|
|
|
**Dependencies (vcpkg.json):**
|
|
- sdl2 (graphics/input with Vulkan support)
|
|
|
|
**Note**: Abseil and gtest are built from source via CMake rather than through vcpkg to avoid compatibility issues.
|
|
|
|
#### Windows Build Commands
|
|
|
|
**Using CMake Presets:**
|
|
```cmd
|
|
# Debug build (minimal, no tests)
|
|
cmake --preset windows-debug
|
|
cmake --build build --preset windows-debug
|
|
|
|
# Development build (includes Google Test)
|
|
cmake --preset windows-dev
|
|
cmake --build build --preset windows-dev
|
|
|
|
# Release build (optimized, no tests)
|
|
cmake --preset windows-release
|
|
cmake --build build --preset windows-release
|
|
```
|
|
|
|
**Using Visual Studio Projects:**
|
|
```powershell
|
|
# Generate project files (with proper vcpkg integration)
|
|
python scripts/generate-vs-projects.py
|
|
|
|
# Open YAZE.sln in Visual Studio
|
|
# Select configuration (Debug/Release) and platform (x64/x86/ARM64)
|
|
# Press F5 to build and run
|
|
```
|
|
|
|
**Build Types:**
|
|
- **windows-debug**: Minimal debug build, no Google Test
|
|
- **windows-dev**: Development build with Google Test and ROM testing
|
|
- **windows-release**: Optimized release build, no Google Test
|
|
|
|
## Build Targets
|
|
|
|
### Applications
|
|
- **yaze**: Main GUI editor application
|
|
- **z3ed**: Command-line interface tool
|
|
|
|
### Libraries
|
|
- **yaze_c**: C API library for extensions
|
|
- **asar-static**: 65816 assembler library
|
|
|
|
### Development (Debug Builds Only)
|
|
- **yaze_emu**: Standalone SNES emulator
|
|
- **yaze_test**: Comprehensive test suite
|
|
|
|
## Build Configurations
|
|
|
|
### Debug (Full Features)
|
|
```bash
|
|
cmake --preset debug # macOS
|
|
# OR
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Debug # All platforms
|
|
```
|
|
**Includes**: NFD, ImGuiTestEngine, PNG support, emulator, all tools
|
|
|
|
### Minimal (CI/Fast Builds)
|
|
```bash
|
|
cmake -B build -DYAZE_MINIMAL_BUILD=ON
|
|
```
|
|
**Excludes**: Emulator, CLI tools, UI tests, optional dependencies
|
|
|
|
### Release
|
|
```bash
|
|
cmake --preset release # macOS
|
|
# OR
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Release # All platforms
|
|
```
|
|
|
|
## Testing System
|
|
|
|
YAZE includes a comprehensive testing system with different test categories designed for various use cases:
|
|
|
|
### Test Categories
|
|
|
|
#### Unit Tests
|
|
- **Core functionality**: AsarWrapper, ROM operations, SNES tiles, palettes
|
|
- **Graphics**: Compression, tile unpacking, color conversion
|
|
- **Zelda3 components**: Message system, overworld, object parsing
|
|
- **Location**: `test/unit/`
|
|
|
|
#### Integration Tests
|
|
- **ASAR integration**: Assembly compilation and ROM patching
|
|
- **Editor integration**: Tile16 editor, dungeon editor
|
|
- **Location**: `test/integration/`
|
|
|
|
#### End-to-End (E2E) Tests
|
|
- **ROM-dependent tests**: Load, edit, save, reload, verify integrity
|
|
- **ZSCustomOverworld upgrade tests**: Vanilla → v2 → v3 upgrade paths
|
|
- **Location**: `test/e2e/`
|
|
|
|
### Running Tests
|
|
|
|
#### Local Development
|
|
```bash
|
|
# Run all tests
|
|
./build/test/yaze_test
|
|
|
|
# Run specific test categories
|
|
./build/test/yaze_test --unit
|
|
./build/test/yaze_test --integration
|
|
./build/test/yaze_test --e2e --rom-path zelda3.sfc
|
|
|
|
# Run with verbose output
|
|
./build/test/yaze_test --verbose
|
|
|
|
# Get help
|
|
./build/test/yaze_test --help
|
|
```
|
|
|
|
#### CI/CD Environment
|
|
The CI builds use a simplified test executable (`yaze_test_ci.cc`) that:
|
|
- Excludes ROM-dependent tests (no ROM files available)
|
|
- Excludes E2E tests (require actual ROM files)
|
|
- Focuses on unit tests and core functionality
|
|
- Uses minimal configuration for reliability
|
|
|
|
#### ROM-Dependent Tests
|
|
These tests require actual ROM files and are only available in local development:
|
|
|
|
```bash
|
|
# E2E ROM tests (requires zelda3.sfc)
|
|
./build/test/yaze_test --e2e --rom-path zelda3.sfc
|
|
|
|
# ZSCustomOverworld upgrade tests
|
|
./build/test/yaze_test --zscustomoverworld --rom-path zelda3.sfc
|
|
```
|
|
|
|
**Note**: ROM-dependent tests are automatically skipped in CI builds and minimal builds.
|
|
|
|
### Test Organization
|
|
|
|
```
|
|
test/
|
|
├── unit/ # Unit tests (CI-safe)
|
|
│ ├── core/ # Core functionality tests
|
|
│ ├── gfx/ # Graphics tests
|
|
│ └── zelda3/ # Zelda3-specific tests
|
|
├── integration/ # Integration tests (CI-safe)
|
|
├── e2e/ # End-to-end tests (ROM-dependent)
|
|
│ ├── rom_dependent/ # ROM load/save/edit tests
|
|
│ └── zscustomoverworld/ # Upgrade path tests
|
|
├── mocks/ # Mock objects for testing
|
|
├── assets/ # Test assets and ROMs
|
|
└── deprecated/ # Outdated tests (moved from emu/)
|
|
```
|
|
|
|
### Test Executables
|
|
|
|
#### Development Build (`yaze_test.cc`)
|
|
- Full argument parsing for AI agents
|
|
- SDL initialization for graphics tests
|
|
- Support for all test categories
|
|
- ROM path configuration
|
|
- Verbose output options
|
|
|
|
#### CI Build (`yaze_test_ci.cc`)
|
|
- Simplified main function
|
|
- No SDL initialization
|
|
- Automatic exclusion of ROM-dependent tests
|
|
- Minimal configuration for reliability
|
|
- Used when `YAZE_MINIMAL_BUILD=ON`
|
|
|
|
### Test Configuration
|
|
|
|
#### CMake Options
|
|
```bash
|
|
# Enable/disable test categories
|
|
-DYAZE_ENABLE_ROM_TESTS=ON # Enable ROM-dependent tests
|
|
-DYAZE_ENABLE_UI_TESTS=ON # Enable ImGui Test Engine
|
|
-DYAZE_ENABLE_EXPERIMENTAL_TESTS=ON # Enable experimental tests
|
|
-DYAZE_MINIMAL_BUILD=ON # Use CI test executable
|
|
```
|
|
|
|
#### Test Filters
|
|
The test system supports Google Test filters for selective execution:
|
|
|
|
```bash
|
|
# Run only core tests
|
|
./build/test/yaze_test --gtest_filter="*Core*"
|
|
|
|
# Exclude ROM tests
|
|
./build/test/yaze_test --gtest_filter="-*RomTest*"
|
|
|
|
# Run specific test suite
|
|
./build/test/yaze_test --gtest_filter="AsarWrapperTest.*"
|
|
```
|
|
|
|
## IDE Integration
|
|
|
|
### Visual Studio (Windows)
|
|
**Recommended approach - CMake Mode:**
|
|
```powershell
|
|
# Setup development environment
|
|
.\scripts\setup-windows-dev.ps1
|
|
|
|
# Open in Visual Studio 2022
|
|
# 1. File → Open → Folder
|
|
# 2. Navigate to yaze directory
|
|
# 3. Visual Studio detects CMakeLists.txt automatically
|
|
# 4. Select configuration from toolbar (Debug/Release)
|
|
# 5. Press F5 to build and run
|
|
```
|
|
|
|
**Why CMake Mode?**
|
|
- ✅ **No project generation step** - CMake files are the source of truth
|
|
- ✅ **Always in sync** - Changes to CMakeLists.txt reflect immediately
|
|
- ✅ **Better IntelliSense** - Direct CMake target understanding
|
|
- ✅ **Native CMake support** - Modern Visual Studio feature
|
|
- ✅ **Simpler workflow** - One less build step to maintain
|
|
- ✅ **Cross-platform consistency** - Same CMake workflow on all platforms
|
|
|
|
**Features:**
|
|
- Full IntelliSense support (better than generated projects)
|
|
- Integrated debugging with breakpoint support
|
|
- Automatic vcpkg dependency management (SDL2)
|
|
- Multi-platform support (x64, ARM64)
|
|
- Automatic asset copying via CMake post-build commands
|
|
- CMakeSettings.json for custom configurations
|
|
|
|
**Legacy Solution Generation (Not Recommended):**
|
|
If you must use a .sln file (e.g., for CI integration):
|
|
```powershell
|
|
python scripts/generate-vs-projects.py
|
|
# Open generated YAZE.sln
|
|
```
|
|
Note: This approach requires regeneration when CMakeLists.txt changes and is less maintainable.
|
|
|
|
### VS Code
|
|
1. Install CMake Tools extension
|
|
2. Open project, select "Debug" preset
|
|
3. Language server uses `compile_commands.json` automatically
|
|
|
|
### CLion
|
|
- Opens CMake projects directly
|
|
- Select Debug configuration
|
|
|
|
### Xcode (macOS)
|
|
```bash
|
|
cmake --preset debug -G Xcode
|
|
open build/yaze.xcodeproj
|
|
```
|
|
|
|
## Windows Development Scripts
|
|
|
|
The project includes several PowerShell and Batch scripts to streamline Windows development:
|
|
|
|
### Setup Scripts
|
|
- **`setup-windows-dev.ps1`**: Complete development environment setup
|
|
- **`setup-windows-dev.bat`**: Batch version of setup script
|
|
|
|
**What they install:**
|
|
- Chocolatey package manager
|
|
- CMake 3.16+
|
|
- Git, Ninja, Python 3
|
|
- Visual Studio 2022 detection
|
|
|
|
### Project Generation Scripts
|
|
- **`generate-vs-projects.py`**: Generate Visual Studio project files with proper vcpkg integration
|
|
- **`generate-vs-projects.bat`**: Batch version of project generation
|
|
|
|
**Features:**
|
|
- Automatic CMake detection and installation
|
|
- Visual Studio 2022 detection
|
|
- Multi-architecture support (x64, ARM64)
|
|
- vcpkg integration
|
|
- CMake compatibility fixes
|
|
|
|
### Testing Scripts
|
|
- **`test-cmake-config.ps1`**: Test CMake configuration without full build
|
|
|
|
**Usage:**
|
|
```powershell
|
|
# Test configuration
|
|
.\scripts\test-cmake-config.ps1
|
|
|
|
# Test with specific architecture
|
|
.\scripts\test-cmake-config.ps1 -Architecture x86
|
|
|
|
# Clean test build
|
|
.\scripts\test-cmake-config.ps1 -Clean
|
|
```
|
|
|
|
## Features by Build Type
|
|
|
|
| Feature | Debug | Release | Minimal (CI) |
|
|
|---------|-------|---------|--------------|
|
|
| GUI Editor | ✅ | ✅ | ✅ |
|
|
| Native File Dialogs | ✅ | ✅ | ❌ |
|
|
| PNG Support | ✅ | ✅ | ❌ |
|
|
| Emulator | ✅ | ✅ | ❌ |
|
|
| CLI Tools | ✅ | ✅ | ❌ |
|
|
| Test Suite | ✅ | ❌ | ✅ (limited) |
|
|
| UI Testing | ✅ | ❌ | ❌ |
|
|
| ROM Tests | ✅ | ❌ | ❌ |
|
|
|
|
## CMake Compatibility
|
|
|
|
### Submodule Compatibility Issues
|
|
YAZE includes several submodules (abseil-cpp, SDL) that may have CMake compatibility issues. The project automatically handles these with:
|
|
|
|
**Automatic Policy Management:**
|
|
- `CMAKE_POLICY_VERSION_MINIMUM=3.5` (handles SDL requirements)
|
|
- `CMAKE_POLICY_VERSION_MAXIMUM=3.28` (prevents future issues)
|
|
- `CMAKE_WARN_DEPRECATED=OFF` (suppresses submodule warnings)
|
|
- `ABSL_PROPAGATE_CXX_STD=ON` (handles Abseil C++ standard propagation)
|
|
- `THREADS_PREFER_PTHREAD_FLAG=OFF` (fixes Windows pthread issues)
|
|
|
|
**Manual Configuration (if needed):**
|
|
```bash
|
|
cmake -B build \
|
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
|
-DCMAKE_POLICY_VERSION_MAXIMUM=3.28 \
|
|
-DCMAKE_WARN_DEPRECATED=OFF \
|
|
-DABSL_PROPAGATE_CXX_STD=ON \
|
|
-DTHREADS_PREFER_PTHREAD_FLAG=OFF \
|
|
-DCMAKE_BUILD_TYPE=Debug
|
|
```
|
|
|
|
## CI/CD and Release Builds
|
|
|
|
### GitHub Actions Workflows
|
|
|
|
The project includes comprehensive CI/CD workflows:
|
|
|
|
- **`ci.yml`**: Multi-platform CI with test execution
|
|
- **`release.yml`**: Automated release builds with packaging
|
|
|
|
### Test Execution in CI
|
|
|
|
**CI Test Strategy:**
|
|
- **Core Tests**: Always run (AsarWrapper, SnesTile, Compression, SnesPalette, Hex, Message)
|
|
- **Unit Tests**: Run with `continue-on-error=true` for information
|
|
- **ROM Tests**: Automatically excluded (no ROM files available)
|
|
- **E2E Tests**: Automatically excluded (require ROM files)
|
|
|
|
**Test Filters in CI:**
|
|
```bash
|
|
# Core tests (must pass)
|
|
ctest -R "AsarWrapperTest|SnesTileTest|CompressionTest|SnesPaletteTest|HexTest|MessageTest"
|
|
|
|
# Additional unit tests (informational)
|
|
ctest -R ".*Test" -E ".*RomTest.*|.*E2E.*|.*ZSCustomOverworld.*|.*IntegrationTest.*"
|
|
```
|
|
|
|
### vcpkg Fallback Mechanisms
|
|
|
|
All Windows CI/CD builds include automatic fallback mechanisms:
|
|
|
|
**When vcpkg succeeds:**
|
|
- Full build with all dependencies (SDL2)
|
|
- Complete feature set available
|
|
|
|
**When vcpkg fails (network issues):**
|
|
- Automatic fallback to minimal build configuration
|
|
- Uses source-built dependencies (Abseil, etc.)
|
|
- Still produces functional executables
|
|
|
|
### Supported Architectures
|
|
|
|
**Windows:**
|
|
- x64 (64-bit) - Primary target for modern systems
|
|
- ARM64 - For ARM-based Windows devices (Surface Pro X, etc.)
|
|
|
|
**macOS:**
|
|
- Universal binary (Apple Silicon + Intel)
|
|
|
|
**Linux:**
|
|
- x64 (64-bit)
|
|
|
|
## Troubleshooting
|
|
|
|
### Windows CMake Issues
|
|
|
|
**CMake Not Found:**
|
|
```powershell
|
|
# Run the setup script
|
|
.\scripts\setup-windows-dev.ps1
|
|
|
|
# Or install manually via Chocolatey
|
|
choco install cmake
|
|
```
|
|
|
|
**Submodule Compatibility Errors:**
|
|
```powershell
|
|
# Test CMake configuration
|
|
.\scripts\test-cmake-config.ps1
|
|
|
|
# Clean build with compatibility flags
|
|
Remove-Item -Recurse -Force build
|
|
cmake -B build -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_WARN_DEPRECATED=OFF
|
|
```
|
|
|
|
**Visual Studio Project Issues:**
|
|
```powershell
|
|
# Regenerate project files
|
|
.\scripts\generate-vs-projects.ps1
|
|
|
|
# Clean and rebuild
|
|
Remove-Item -Recurse -Force build
|
|
cmake --preset windows-debug
|
|
```
|
|
|
|
### vcpkg Issues
|
|
|
|
**Dependencies Not Installing:**
|
|
```cmd
|
|
# Check vcpkg installation
|
|
vcpkg version
|
|
|
|
# Reinstall dependencies
|
|
vcpkg install --triplet x64-windows sdl2
|
|
|
|
# Check installed packages
|
|
vcpkg list
|
|
```
|
|
|
|
**Network/Download Failures:**
|
|
- The CI/CD workflows automatically fall back to minimal builds
|
|
- For local development, ensure stable internet connection
|
|
- If vcpkg consistently fails, use minimal build mode:
|
|
```bash
|
|
cmake -B build -DYAZE_MINIMAL_BUILD=ON
|
|
```
|
|
|
|
**Visual Studio Integration:**
|
|
```cmd
|
|
# Re-integrate vcpkg
|
|
cd C:\vcpkg
|
|
.\vcpkg.exe integrate install
|
|
```
|
|
|
|
**ZLIB or Other Dependencies Not Found:**
|
|
```bash
|
|
# Regenerate project files with proper vcpkg integration
|
|
python scripts/generate-vs-projects.py
|
|
|
|
# Ensure vcpkg is properly set up
|
|
.\scripts\setup-windows-dev.ps1
|
|
```
|
|
|
|
### Test Issues
|
|
|
|
**Test Discovery Failures:**
|
|
```bash
|
|
# Use CI test executable for minimal builds
|
|
cmake -B build -DYAZE_MINIMAL_BUILD=ON
|
|
cmake --build build
|
|
|
|
# Check test executable
|
|
./build/test/yaze_test --help
|
|
```
|
|
|
|
**ROM Test Failures:**
|
|
```bash
|
|
# Ensure ROM file exists
|
|
ls -la zelda3.sfc
|
|
|
|
# Run with explicit ROM path
|
|
./build/test/yaze_test --e2e --rom-path zelda3.sfc
|
|
```
|
|
|
|
**SDL Initialization Errors:**
|
|
- These are expected in CI builds
|
|
- Use minimal build configuration for CI compatibility
|
|
- For local development, ensure SDL2 is properly installed
|
|
|
|
### Architecture Errors (macOS)
|
|
```bash
|
|
# Clean and use ARM64-only preset
|
|
rm -rf build
|
|
cmake --preset debug # Uses arm64 only
|
|
```
|
|
|
|
### Missing Headers (Language Server)
|
|
```bash
|
|
# Regenerate compile commands
|
|
cmake --preset debug
|
|
cp build/compile_commands.json .
|
|
# Restart VS Code
|
|
```
|
|
|
|
### CI Build Failures
|
|
Use minimal build configuration that matches CI:
|
|
```bash
|
|
cmake -B build -DYAZE_MINIMAL_BUILD=ON -DYAZE_ENABLE_UI_TESTS=OFF
|
|
cmake --build build
|
|
```
|
|
|
|
### Common Error Solutions
|
|
|
|
**"CMake Deprecation Warning" from submodules:**
|
|
- This is automatically handled by the project's CMake configuration
|
|
- If you see these warnings, they can be safely ignored
|
|
|
|
**"pthread_create not found" on Windows:**
|
|
- The project automatically sets `THREADS_PREFER_PTHREAD_FLAG=OFF`
|
|
- This is normal for Windows builds
|
|
|
|
**"Abseil C++ std propagation" warnings:**
|
|
- Automatically handled with `ABSL_PROPAGATE_CXX_STD=ON`
|
|
- Ensures proper C++ standard handling
|
|
|
|
**Visual Studio "file not found" errors:**
|
|
- Run `python scripts/generate-vs-projects.py` to regenerate project files
|
|
- Ensure CMake configuration completed successfully first
|
|
|
|
**CI/CD Build Failures:**
|
|
- Check if vcpkg download failed (network issues)
|
|
- The workflows automatically fall back to minimal builds
|
|
- For persistent issues, check the workflow logs for specific error messages
|
|
|
|
**Test Executable Issues:**
|
|
- Ensure the correct test executable is being used (CI vs development)
|
|
- Check that test filters are properly configured
|
|
- Verify that ROM-dependent tests are excluded in CI builds |