feat: Complete cross-platform build system and folder reorganization

- Reorganize project structure: Port/ → DotNet/, VC/, C++/
- Add comprehensive cross-platform build automation
  - Windows: build_all.bat, build.bat files for all components
  - Linux/macOS: build_all.sh, build.sh files for all components
- Update all build scripts with correct folder paths
- Create test automation scripts (test_all.bat/sh)
- Update documentation to reflect new structure
- Maintain 100% roundtrip accuracy for test5.exi (pure EXI)
- Support both Windows MSBuild and Linux GCC compilation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ChiKyun Kim
2025-09-12 09:36:38 +09:00
parent 5254954d48
commit c6dc6735fa
170 changed files with 509409 additions and 21 deletions

67
test_all.bat Normal file
View File

@@ -0,0 +1,67 @@
@echo off
rem =============================================================================
rem V2G EXI Decoder - 전체 테스트 스크립트
rem 설명: 모든 샘플 파일을 .NET 버전으로 테스트
rem =============================================================================
echo.
echo ==========================================
echo V2G EXI Decoder 테스트 시작
echo ==========================================
echo.
set TEST_ERROR=0
rem 테스트 결과 저장 폴더 생성
if not exist "temp" mkdir temp
echo [테스트 1] test5.exi (CurrentDemandReq) - 순수 EXI 43바이트
echo.
dotnet run --project DotNet/V2GDecoderNet.csproj Sample/test5.exi > temp/test5_output.txt 2>&1
if %ERRORLEVEL% neq 0 (
echo ERROR: test5.exi 테스트 실패
set TEST_ERROR=1
) else (
echo ✅ test5.exi 테스트 성공
)
echo.
echo [테스트 2] test1.exi (CurrentDemandRes) - 네트워크 패킷 포함 131바이트
echo.
dotnet run --project DotNet/V2GDecoderNet.csproj Sample/test1.exi > temp/test1_output.txt 2>&1
if %ERRORLEVEL% neq 0 (
echo ERROR: test1.exi 테스트 실패
set TEST_ERROR=1
) else (
echo ✅ test1.exi 테스트 성공
)
echo.
echo [테스트 3] roundtrip 테스트 - EXI → XML → EXI
echo.
dotnet run --project DotNet/V2GDecoderNet.csproj -decode Sample/test5.exi > temp/test5_decoded.xml 2>NUL
dotnet run --project DotNet/V2GDecoderNet.csproj -encode temp/test5_decoded.xml > temp/test5_roundtrip.exi 2>NUL
fc /b Sample\test5.exi temp\test5_roundtrip.exi >NUL
if %ERRORLEVEL% neq 0 (
echo ERROR: roundtrip 테스트 실패 - 파일이 다릅니다
set TEST_ERROR=1
) else (
echo ✅ roundtrip 테스트 성공 - 파일이 동일합니다
)
echo.
rem 결과 요약
echo ==========================================
echo 테스트 결과 요약
echo ==========================================
if %TEST_ERROR% equ 0 (
echo ✅ 모든 테스트가 성공적으로 완료되었습니다
echo.
echo 테스트 결과 파일들이 temp/ 폴더에 저장되었습니다:
dir temp\*.txt temp\*.xml temp\*.exi 2>NUL
exit /b 0
) else (
echo ❌ 일부 테스트가 실패했습니다
echo 자세한 내용은 temp/ 폴더의 로그 파일을 확인하세요
exit /b 1
)