@echo off REM Generate Visual Studio project files for YAZE REM This script creates proper Visual Studio solution and project files setlocal enabledelayedexpansion REM Default values set CONFIGURATION=Debug set ARCHITECTURE=x64 set CLEAN=false REM Parse command line arguments :parse_args if "%~1"=="" goto :args_done if "%~1"=="--clean" set CLEAN=true if "%~1"=="--release" set CONFIGURATION=Release if "%~1"=="--x86" set ARCHITECTURE=Win32 if "%~1"=="--x64" set ARCHITECTURE=x64 if "%~1"=="--arm64" set ARCHITECTURE=ARM64 shift goto :parse_args :args_done REM Validate architecture if not "%ARCHITECTURE%"=="x64" if not "%ARCHITECTURE%"=="Win32" if not "%ARCHITECTURE%"=="ARM64" ( echo Invalid architecture: %ARCHITECTURE% echo Valid architectures: x64, Win32, ARM64 exit /b 1 ) echo Generating Visual Studio project files for YAZE... REM Check if we're on Windows if not "%OS%"=="Windows_NT" ( echo This script is designed for Windows. Use CMake presets on other platforms. echo Available presets: echo - windows-debug echo - windows-release echo - windows-dev exit /b 1 ) REM Set up paths set SOURCE_DIR=%~dp0.. set BUILD_DIR=%SOURCE_DIR%\build-vs echo Source directory: %SOURCE_DIR% echo Build directory: %BUILD_DIR% REM Clean build directory if requested if "%CLEAN%"=="true" ( if exist "%BUILD_DIR%" ( echo Cleaning build directory... rmdir /s /q "%BUILD_DIR%" ) ) REM Create build directory if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%" REM Check if vcpkg is available set VCPKG_PATH=%SOURCE_DIR%\vcpkg\scripts\buildsystems\vcpkg.cmake if exist "%VCPKG_PATH%" ( echo Using vcpkg toolchain: %VCPKG_PATH% set USE_VCPKG=true ) else ( echo vcpkg not found, using system libraries set USE_VCPKG=false ) REM Build CMake command set CMAKE_ARGS=-B "%BUILD_DIR%" -G "Visual Studio 17 2022" -A %ARCHITECTURE% -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DYAZE_BUILD_TESTS=ON -DYAZE_BUILD_APP=ON -DYAZE_BUILD_LIB=ON -DYAZE_BUILD_EMU=ON -DYAZE_BUILD_Z3ED=ON -DYAZE_ENABLE_ROM_TESTS=OFF -DYAZE_ENABLE_EXPERIMENTAL_TESTS=ON -DYAZE_ENABLE_UI_TESTS=ON -DYAZE_INSTALL_LIB=OFF if "%USE_VCPKG%"=="true" ( set CMAKE_ARGS=%CMAKE_ARGS% -DCMAKE_TOOLCHAIN_FILE="%VCPKG_PATH%" -DVCPKG_TARGET_TRIPLET=%ARCHITECTURE%-windows -DVCPKG_MANIFEST_MODE=ON ) REM Run CMake configuration echo Configuring CMake... echo Command: cmake %CMAKE_ARGS% "%SOURCE_DIR%" cmake %CMAKE_ARGS% "%SOURCE_DIR%" if errorlevel 1 ( echo CMake configuration failed! exit /b 1 ) REM Check if solution file was created set SOLUTION_FILE=%BUILD_DIR%\YAZE.sln if exist "%SOLUTION_FILE%" ( echo ✅ Visual Studio solution created: %SOLUTION_FILE% REM Copy solution file to root directory for convenience set ROOT_SOLUTION_FILE=%SOURCE_DIR%\YAZE.sln copy "%SOLUTION_FILE%" "%ROOT_SOLUTION_FILE%" >nul echo ✅ Solution file copied to root directory REM Try to open solution in Visual Studio where devenv >nul 2>&1 if not errorlevel 1 ( echo Opening solution in Visual Studio... start "" devenv "%ROOT_SOLUTION_FILE%" ) else ( echo Visual Studio solution ready: %ROOT_SOLUTION_FILE% ) ) else ( echo ❌ Solution file not created. Check CMake output for errors. exit /b 1 ) echo. echo 🎉 Visual Studio project generation complete! echo. echo Next steps: echo 1. Open YAZE.sln in Visual Studio echo 2. Select configuration: %CONFIGURATION% echo 3. Select platform: %ARCHITECTURE% echo 4. Build the solution (Ctrl+Shift+B) echo. echo Available configurations: echo - Debug (with debugging symbols) echo - Release (optimized) echo - RelWithDebInfo (optimized with debug info) echo - MinSizeRel (minimum size) echo. echo Available architectures: echo - x64 (64-bit Intel/AMD) echo - x86 (32-bit Intel/AMD) echo - ARM64 (64-bit ARM) pause