@echo off
rem =============================================================================
rem V2G EXI Decoder - 전체 플랫폼 빌드 스크립트
rem 설명: C, VC2022, .NET Core 모든 버전을 한 번에 빌드
rem =============================================================================

echo.
echo ==========================================
echo V2G EXI Decoder 전체 빌드 시작
echo ==========================================
echo.

set BUILD_ERROR=0

rem .NET Core 빌드
echo [1/3] .NET Core 빌드 중...
cd /d "%~dp0"
dotnet build DotNet/V2GDecoderNet.csproj -c Release
if %ERRORLEVEL% neq 0 (
    echo ERROR: .NET Core 빌드 실패
    set BUILD_ERROR=1
) else (
    echo SUCCESS: .NET Core 빌드 완료
)
echo.

rem VC2022 MSBuild 빌드
echo [2/3] VC2022 MSBuild 빌드 중...
if exist "VC\build.bat" (
    cd VC
    call build.bat
    if %ERRORLEVEL% neq 0 (
        echo ERROR: VC2022 빌드 실패
        set BUILD_ERROR=1
    ) else (
        echo SUCCESS: VC2022 빌드 완료
    )
    cd /d "%~dp0"
) else (
    echo WARNING: VC2022 빌드 스크립트를 찾을 수 없습니다
)
echo.

rem C++ 빌드 확인
echo [3/3] C++ 빌드 확인 중...
if exist "C++\build.bat" (
    cd C++
    call build.bat
    if %ERRORLEVEL% neq 0 (
        echo ERROR: C++ 빌드 실패
        set BUILD_ERROR=1
    ) else (
        echo SUCCESS: C++ 빌드 완료
    )
    cd /d "%~dp0"
) else (
    echo INFO: C++ 빌드 스크립트가 없어 C++ 빌드를 건너뜁니다
)
echo.

rem 결과 요약
echo ==========================================
echo 빌드 결과 요약
echo ==========================================
if %BUILD_ERROR% equ 0 (
    echo ✅ 모든 빌드가 성공적으로 완료되었습니다
    
    echo.
    echo 생성된 실행 파일들:
    if exist "DotNet\bin\Release\net8.0\V2GDecoderNet.exe" (
        echo   📦 .NET: DotNet\bin\Release\net8.0\V2GDecoderNet.exe
    )
    if exist "VC\x64\Debug\V2GDecoder.exe" (
        echo   📦 VC2022: VC\x64\Debug\V2GDecoder.exe
    )
    if exist "C++\bin\V2GDecoder.exe" (
        echo   📦 C++: C++\bin\V2GDecoder.exe
    )
    
    echo.
    echo 사용법:
    echo   dotnet run --project DotNet/V2GDecoderNet.csproj Sample/test5.exi
    echo   DotNet\bin\Release\net8.0\V2GDecoderNet.exe Sample/test5.exi
    
    exit /b 0
) else (
    echo ❌ 일부 빌드가 실패했습니다
    exit /b 1
)