Files
V2GDecoderC/build_all.sh
ChiKyun Kim 5056fe18f9 feat: Add bin directory output for C++ builds
- Update C++/build.bat to create bin/ directory and output executable there
- Update C++/build.sh to create bin/ directory and output executable there
- Update build_all.bat to check for C++/bin/V2GDecoder.exe
- Update build_all.sh to check for C++/bin/V2GDecoder
- Test successful: C++/bin/V2GDecoder.exe working correctly with sample files

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 09:44:08 +09:00

110 lines
3.0 KiB
Bash

#!/bin/bash
# =============================================================================
# V2G EXI Decoder - 전체 플랫폼 빌드 스크립트 (Linux/macOS)
# 설명: C, VC2022 (gcc), .NET Core 모든 버전을 한 번에 빌드
# =============================================================================
echo
echo "=========================================="
echo "V2G EXI Decoder 전체 빌드 시작"
echo "=========================================="
echo
BUILD_ERROR=0
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# .NET Core 빌드
echo "[1/3] .NET Core 빌드 중..."
dotnet build DotNet/V2GDecoderNet.csproj -c Release
if [ $? -ne 0 ]; then
echo "ERROR: .NET Core 빌드 실패"
BUILD_ERROR=1
else
echo "SUCCESS: .NET Core 빌드 완료"
fi
echo
# VC -> GCC 빌드
echo "[2/3] GCC로 VC 소스 빌드 중..."
if [ -d "VC/src" ]; then
# GCC 컴파일 명령어
gcc -I"VC/src" \
-I"VC/src/codec" \
-I"VC/src/iso1" \
-I"VC/src/iso2" \
-I"VC/src/din" \
-I"VC/src/xmldsig" \
-I"VC/src/appHandshake" \
-I"VC/src/transport" \
-I"VC/src/compat" \
-O2 -Wall \
VC/V2GDecoder.c \
VC/src/codec/*.c \
VC/src/iso1/*.c \
VC/src/iso2/*.c \
VC/src/din/*.c \
VC/src/xmldsig/*.c \
VC/src/appHandshake/*.c \
VC/src/transport/*.c \
-o V2GDecoder_gcc
if [ $? -ne 0 ]; then
echo "ERROR: GCC 빌드 실패"
BUILD_ERROR=1
else
echo "SUCCESS: GCC 빌드 완료"
fi
else
echo "WARNING: VC 소스 폴더를 찾을 수 없습니다"
fi
echo
# C++ 빌드 확인
echo "[3/3] C++ 빌드 확인 중..."
if [ -f "C++/build.sh" ]; then
cd C++
./build.sh
if [ $? -ne 0 ]; then
echo "ERROR: C++ 빌드 실패"
BUILD_ERROR=1
else
echo "SUCCESS: C++ 빌드 완료"
fi
cd "$SCRIPT_DIR"
elif [ -f "Makefile" ]; then
make clean && make
if [ $? -ne 0 ]; then
echo "ERROR: C 빌드 실패"
BUILD_ERROR=1
else
echo "SUCCESS: C 빌드 완료"
fi
else
echo "INFO: C++/Makefile이 없어 C++ 빌드를 건너뜁니다"
fi
echo
# 결과 요약
echo "=========================================="
echo "빌드 결과 요약"
echo "=========================================="
if [ $BUILD_ERROR -eq 0 ]; then
echo "✅ 모든 빌드가 성공적으로 완료되었습니다"
echo
echo "생성된 실행 파일들:"
[ -f "DotNet/bin/Release/net8.0/V2GDecoderNet.dll" ] && echo " 📦 .NET: DotNet/bin/Release/net8.0/V2GDecoderNet.dll"
[ -f "V2GDecoder_gcc" ] && echo " 📦 GCC: V2GDecoder_gcc"
[ -f "C++/bin/V2GDecoder" ] && echo " 📦 C++: C++/bin/V2GDecoder"
echo
echo "사용법:"
echo " dotnet run --project DotNet/V2GDecoderNet.csproj Sample/test5.exi"
echo " ./V2GDecoder_gcc Sample/test5.exi"
exit 0
else
echo "❌ 일부 빌드가 실패했습니다"
exit 1
fi