-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBuildInstaller.bat
More file actions
103 lines (90 loc) · 2.67 KB
/
Copy pathBuildInstaller.bat
File metadata and controls
103 lines (90 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
@echo off
setlocal
echo ================================================
echo ChatGate - Build + Package
echo ================================================
:: ---- Step 1: Build the EXE with PyInstaller ----
echo.
echo [1/2] Building ChatGate.exe with PyInstaller...
echo.
:: ---- Check for UPX ----
echo Checking for UPX availability...
set "NOUPX="
where upx >nul 2>&1
if errorlevel 1 (
echo UPX not found; PyInstaller will be run with --noupx.
set "NOUPX=--noupx"
) else (
echo UPX found; PyInstaller will use UPX if available.
)
python -m PyInstaller %NOUPX% ^
--onefile ^
--windowed ^
--name ChatGate ^
--icon=ChatGate.ico ^
--add-data "ChatGate.ico;." ^
--add-data ".venv\Lib\site-packages\appdirs.py;appdirs" ^
--add-data "badges;badges" ^
--copy-metadata packaging ^
--collect-all tls_client ^
--collect-all PyQtWebEngine ^
--collect-all PyQt5 ^
--add-binary ".venv\Lib\site-packages\tls_client\dependencies\tls-client-64.dll;tls_client\dependencies" ^
--hidden-import PyQt5.QtSvg ^
--hidden-import tls_client ^
--hidden-import requests ^
--hidden-import certifi ^
--hidden-import charset_normalizer ^
--hidden-import idna ^
--hidden-import urllib3 ^
--hidden-import PyQt5.QtWebEngineWidgets ^
--hidden-import sip ^
--hidden-import appdirs ^
main.py
if errorlevel 1 (
echo.
echo ERROR: PyInstaller failed. See output above.
pause
exit /b 1
)
echo.
echo EXE built successfully: dist\ChatGate.exe
:: ---- Step 2: Build the installer with NSIS ----
echo.
echo [2/2] Building installer with NSIS...
echo.
:: Safer NSIS detection (avoids parentheses parsing issues)
set "NSIS_EXE="
set "NSIS_PATH1=C:\Program Files (x86)\NSIS\makensis.exe"
set "NSIS_PATH2=C:\Program Files\NSIS\makensis.exe"
if exist "%NSIS_PATH1%" set "NSIS_EXE=%NSIS_PATH1%"
if exist "%NSIS_PATH2%" set "NSIS_EXE=%NSIS_PATH2%"
if "%NSIS_EXE%"=="" (
where makensis >nul 2>&1
if not errorlevel 1 set "NSIS_EXE=makensis"
)
if "%NSIS_EXE%"=="" (
echo.
echo WARNING: NSIS not found. Skipping installer packaging.
echo To build the installer, install NSIS from https://nsis.sourceforge.io
echo Then run: makensis ChatGate.nsi
echo.
echo The standalone EXE is still available at dist\ChatGate.exe
pause
exit /b 0
)
echo Using NSIS: %NSIS_EXE%
"%NSIS_EXE%" ChatGate.nsi
if errorlevel 1 (
echo.
echo ERROR: NSIS failed. See output above.
pause
exit /b 1
)
echo.
echo ================================================
echo Done!
echo Standalone EXE : dist\ChatGate.exe
echo Installer : ChatGate_Setup.exe
echo ================================================
pause