68 lines
1.7 KiB
Batchfile
68 lines
1.7 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul
|
||
setlocal enabledelayedexpansion
|
||
|
||
REM 一键打包:PyInstaller -> dist\niumasoftware -> 生成 Inno 脚本 -> (可选) 编译安装包
|
||
REM 需要:
|
||
REM - Python + PyInstaller(pip install pyinstaller)
|
||
REM - Inno Setup(可选,用于自动编译 .iss)
|
||
|
||
cd /d "%~dp0"
|
||
|
||
echo.
|
||
echo === Clean old build artifacts ===
|
||
if exist "build" rmdir /s /q "build"
|
||
if exist "dist" rmdir /s /q "dist"
|
||
|
||
echo.
|
||
echo === Build main app (onedir) ===
|
||
python -m PyInstaller --noconfirm --onedir --name niumasoftware --windowed ^
|
||
--icon "logo.ico" ^
|
||
--add-data "assets;assets" ^
|
||
--add-data "logo.png;." ^
|
||
main.py
|
||
if errorlevel 1 goto :fail
|
||
|
||
echo.
|
||
echo === Build update helper (onefile -> dist\niumasoftware) ===
|
||
python -m PyInstaller --noconfirm --onefile --name update_helper --console --distpath dist\niumasoftware ^
|
||
--icon "logo.ico" ^
|
||
update_helper.py
|
||
if errorlevel 1 goto :fail
|
||
|
||
echo.
|
||
echo === Generate Inno Setup script with AppVersion ===
|
||
python installer\build_installer.py
|
||
if errorlevel 1 goto :fail
|
||
|
||
echo.
|
||
echo === (Optional) Compile installer via ISCC.exe ===
|
||
set "ISCC="
|
||
if exist "%ProgramFiles(x86)%\Inno Setup 6\ISCC.exe" set "ISCC=%ProgramFiles(x86)%\Inno Setup 6\ISCC.exe"
|
||
if exist "%ProgramFiles%\Inno Setup 6\ISCC.exe" set "ISCC=%ProgramFiles%\Inno Setup 6\ISCC.exe"
|
||
|
||
if not defined ISCC (
|
||
echo ISCC.exe not found, skip compiling installer.
|
||
echo You can compile: installer\niumasoftware.generated.iss
|
||
goto :ok
|
||
)
|
||
|
||
echo Using ISCC: "%ISCC%"
|
||
"%ISCC%" "installer\niumasoftware.generated.iss"
|
||
if errorlevel 1 goto :fail
|
||
|
||
:ok
|
||
echo.
|
||
echo === Done ===
|
||
echo dist\niumasoftware\niumasoftware.exe
|
||
echo dist\niumasoftware\update_helper.exe
|
||
echo installer\niumasoftware.generated.iss
|
||
echo.
|
||
exit /b 0
|
||
|
||
:fail
|
||
echo.
|
||
echo Build failed.
|
||
exit /b 1
|
||
|