112 lines
3.0 KiB
Batchfile
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
|