add windows build script
This commit is contained in:
parent
fb773ba948
commit
c581911f68
1 changed files with 77 additions and 0 deletions
77
build.bat
Normal file
77
build.bat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
cd /d "%~dp0"
|
||||||
|
|
||||||
|
echo --- Disco-Reaper Windows Build Script ---
|
||||||
|
|
||||||
|
REM Check for venv
|
||||||
|
IF NOT EXIST "venv" (
|
||||||
|
echo Creating virtual environment...
|
||||||
|
python -m venv venv
|
||||||
|
IF ERRORLEVEL 1 (
|
||||||
|
echo Error: Failed to create virtual environment.
|
||||||
|
echo Ensure Python is installed and added to PATH.
|
||||||
|
IF NOT DEFINED AUTO_BUILD pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Activating virtual environment...
|
||||||
|
call venv\Scripts\activate.bat
|
||||||
|
|
||||||
|
REM Self-healing pip check
|
||||||
|
python -m pip --version >nul 2>&1
|
||||||
|
IF ERRORLEVEL 1 (
|
||||||
|
echo Warning: pip is missing or broken in venv. Attempting repair...
|
||||||
|
python -m ensurepip --default-pip
|
||||||
|
IF ERRORLEVEL 1 (
|
||||||
|
echo Error: Failed to repair pip automatically.
|
||||||
|
echo Try recreating the venv: rmdir /s /q venv ^&^& python -m venv venv
|
||||||
|
IF NOT DEFINED AUTO_BUILD pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Ensuring build dependencies are up to date...
|
||||||
|
REM python -m pip install --upgrade pip --quiet
|
||||||
|
python -m pip install pyinstaller --quiet
|
||||||
|
python -m pip install -r requirements.txt --quiet
|
||||||
|
|
||||||
|
echo Cleaning previous build artifacts...
|
||||||
|
IF EXIST "build" rmdir /s /q build
|
||||||
|
IF EXIST "dist" rmdir /s /q dist
|
||||||
|
|
||||||
|
echo Starting PyInstaller build...
|
||||||
|
REM Get git version tag
|
||||||
|
set "GIT_VERSION=Unknown"
|
||||||
|
for /f "tokens=*" %%i in ('git describe --tags --abbrev^=0 2^>nul') do set "GIT_VERSION=%%i"
|
||||||
|
echo Baking version: %GIT_VERSION%
|
||||||
|
echo __version__ = "%GIT_VERSION%"> src\core\_baked_version.py
|
||||||
|
|
||||||
|
python -m PyInstaller --clean disco-reaper.spec
|
||||||
|
IF ERRORLEVEL 1 (
|
||||||
|
echo Error: PyInstaller build failed.
|
||||||
|
del /f src\core\_baked_version.py 2>nul
|
||||||
|
IF NOT DEFINED AUTO_BUILD pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Cleaning up baked version file...
|
||||||
|
del /f src\core\_baked_version.py 2>nul
|
||||||
|
|
||||||
|
echo Packaging release: disco-reaper-windows.zip...
|
||||||
|
cd dist
|
||||||
|
powershell -Command "Compress-Archive -Path 'DiscoReaper.exe' -DestinationPath 'disco-reaper-windows.zip' -Force" 2>nul
|
||||||
|
IF ERRORLEVEL 1 (
|
||||||
|
echo Warning: Failed to create zip. Files are available in dist\ directory.
|
||||||
|
) ELSE (
|
||||||
|
echo Package created: dist\disco-reaper-windows.zip
|
||||||
|
)
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo -----------------------------------
|
||||||
|
echo Build complete!
|
||||||
|
echo Standalone executable: dist\DiscoReaper.exe
|
||||||
|
echo Release Package: dist\disco-reaper-windows.zip
|
||||||
|
echo ---
|
||||||
|
IF NOT DEFINED AUTO_BUILD pause
|
||||||
Loading…
Add table
Reference in a new issue