Improve build script: remove aggressive cache cleaning and add auto dependency check

Changes:
- Removed -modcache flag that was deleting Go modules unnecessarily
- Changed from -cache -modcache -testcache to just go clean
- Added automatic system dependency detection (X11 libs)
- Will attempt to install missing deps automatically if found
- Keeps Go module cache intact between builds for faster compilation

This fixes the issue where builds would fail after cache cleaning due to
missing Go modules, while still checking for required system libraries.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Stu 2025-12-09 12:08:58 -05:00
parent 792e5a6a5a
commit 5e902262c5

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# VT_Player Build Script # VT_Player Build Script
# Cleans dependencies and builds the application with proper error handling # Builds the application with proper dependency checking
set -e set -e
@ -25,16 +25,54 @@ echo ""
# Change to project directory # Change to project directory
cd "$PROJECT_ROOT" cd "$PROJECT_ROOT"
echo "🧹 Cleaning previous builds and cache..." # Check for system dependencies (X11 development libraries)
go clean -cache -modcache -testcache 2>/dev/null || true echo "🔍 Checking system dependencies..."
rm -f "$BUILD_OUTPUT" 2>/dev/null || true MISSING_DEPS=()
echo "✓ Cache cleaned"
# Check for essential X11 libraries needed by Fyne/GLFW
if ! pkg-config --exists x11 2>/dev/null; then
MISSING_DEPS+=("libX11-devel")
fi
if ! pkg-config --exists xcursor 2>/dev/null; then
MISSING_DEPS+=("libXcursor-devel")
fi
if ! pkg-config --exists xrandr 2>/dev/null; then
MISSING_DEPS+=("libXrandr-devel")
fi
if ! pkg-config --exists gl 2>/dev/null; then
MISSING_DEPS+=("mesa-libGL-devel")
fi
if [ ${#MISSING_DEPS[@]} -gt 0 ]; then
echo "⚠️ Missing system dependencies: ${MISSING_DEPS[*]}"
echo "📥 Attempting to install dependencies..."
if [ -f "$PROJECT_ROOT/scripts/install-deps-linux.sh" ]; then
bash "$PROJECT_ROOT/scripts/install-deps-linux.sh" || {
echo "❌ Failed to install dependencies automatically"
echo "Please run: sudo bash $PROJECT_ROOT/scripts/install-deps-linux.sh"
exit 1
}
else
echo "❌ Dependency installer not found"
echo "Please install missing packages manually: ${MISSING_DEPS[*]}"
exit 1
fi
else
echo "✓ System dependencies OK"
fi
echo "" echo ""
echo "⬇️ Downloading and verifying dependencies..." echo "🧹 Cleaning previous build..."
rm -f "$BUILD_OUTPUT" 2>/dev/null || true
go clean 2>/dev/null || true
echo "✓ Cleaned"
echo ""
echo "⬇️ Ensuring Go modules are downloaded..."
go mod download go mod download
go mod verify go mod verify
echo "✓ Dependencies verified" echo "✓ Dependencies ready"
echo "" echo ""
echo "🔨 Building VT_Player..." echo "🔨 Building VT_Player..."