Files
spacetris/build-production.bat

112 lines
3.0 KiB
Batchfile

@echo off
REM Simple Production Build Script for Spacetris SDL3
REM This batch file builds and packages the game for distribution
setlocal EnableDelayedExpansion
echo ======================================
echo Spacetris SDL3 Production Builder
echo ======================================
echo.
REM Check if we're in the right directory
if not exist "CMakeLists.txt" (
echo Error: CMakeLists.txt not found. Please run this script from the project root directory.
pause
exit /b 1
)
REM Clean previous builds
echo Cleaning previous builds...
if exist "build-release" rmdir /s /q "build-release"
if exist "dist" rmdir /s /q "dist"
REM Create and configure build directory
echo Configuring CMake for Release build...
mkdir "build-release"
cd "build-release"
cmake .. -DCMAKE_BUILD_TYPE=Release
if !errorlevel! neq 0 (
echo CMake configuration failed!
pause
exit /b 1
)
REM Build the project
echo Building Release version...
cmake --build . --config Release
if !errorlevel! neq 0 (
echo Build failed!
pause
exit /b 1
)
cd ..
REM Create distribution directory
echo Creating distribution package...
mkdir "dist\SpacetrisGame"
REM Copy executable
if exist "build-release\Release\spacetris.exe" (
copy "build-release\Release\spacetris.exe" "dist\SpacetrisGame\"
) else if exist "build-release\spacetris.exe" (
copy "build-release\spacetris.exe" "dist\SpacetrisGame\"
) else (
echo Error: Executable not found!
pause
exit /b 1
)
REM Copy assets
echo Copying game assets...
if exist "assets" xcopy "assets" "dist\SpacetrisGame\assets\" /E /I /Y
if exist "FreeSans.ttf" copy "FreeSans.ttf" "dist\SpacetrisGame\"
REM Copy SDL DLLs (if available) - SDL_image no longer needed
echo Copying dependencies...
set "PackageDir=dist\SpacetrisGame"
set "copiedDependencies=0"
call :CopyDependencyDir "build-release\vcpkg_installed\x64-windows\bin"
call :CopyDependencyDir "vcpkg_installed\x64-windows\bin"
if "%copiedDependencies%"=="0" (
echo Warning: No dependency DLLs were copied. Ensure vcpkg release binaries exist.
)
REM Create launcher batch file
echo @echo off > "dist\SpacetrisGame\Launch-Spacetris.bat"
echo cd /d "%%~dp0" >> "dist\SpacetrisGame\Launch-Spacetris.bat"
echo spacetris.exe >> "dist\SpacetrisGame\Launch-Spacetris.bat"
echo pause >> "dist\SpacetrisGame\Launch-Spacetris.bat"
echo.
echo ======================================
echo Build Completed Successfully!
echo ======================================
echo Package location: dist\SpacetrisGame
echo.
echo The game is ready for distribution!
echo Users can run spacetris.exe or Launch-Spacetris.bat
echo.
pause
goto :eof
:CopyDependencyDir
set "dllDir=%~1"
if not exist "%dllDir%" goto :eof
echo Scanning %dllDir% for DLLs...
for %%F in ("%dllDir%\*.dll") do (
if exist "%%~fF" (
if exist "%PackageDir%\%%~nxF" (
copy /Y "%%~fF" "%PackageDir%\%%~nxF" >nul
) else (
copy "%%~fF" "%PackageDir%\" >nul
)
echo Copied %%~nxF
set "copiedDependencies=1"
)
)
goto :eof