Files
Private-Proxy/lite/build_nuitka.bat
T

47 lines
1.9 KiB
Batchfile

@echo off
cd /d "%~dp0"
call ..\.venv\Scripts\python.exe -m nuitka --version >nul 2>&1
if errorlevel 1 (
echo Nuitka not installed. Run first:
echo ..\.venv\Scripts\python.exe -m pip install nuitka zstandard
pause
exit /b 1
)
rem Remove prior artifacts and the SCons incremental state before every build.
rem The constants blob is embedded outside normal dependency tracking, so reuse
rem can leave new UI strings and settings keys out of the executable.
rd /s /q "dist\main.build" 2>nul
rd /s /q "dist\main.dist" 2>nul
rd /s /q "dist\main.onefile-build" 2>nul
rem Use Nuitka COFF objects for embedded constants to avoid compiler cache reuse.
rem Zig C23 embed caches do not reliably track embedded blob changes.
set NUITKA_RESOURCE_MODE=coff_obj
rem Convert config.json version to Windows file-version segments (each <= 65535).
for /f %%v in ('..\.venv\Scripts\python.exe -c "import json;v=json.load(open('config.json',encoding='utf-8'))['version'];print(f'9999.{int(v[4:8])}.{int(v[8:12])}.0')"') do set "FILEVER=%%v"
call ..\.venv\Scripts\python.exe -m nuitka ^
--standalone --onefile ^
--enable-plugin=pyqt5 ^
--user-package-configuration-file=rrpp-tun.nuitka-package.config.yml ^
--include-data-files=config.json=config.json ^
--include-data-files=runtime/LICENSE.tun2socks.txt=LICENSE.tun2socks.txt ^
--include-data-files=runtime/LICENSE.wintun.txt=LICENSE.wintun.txt ^
--include-data-files=runtime/README.txt=README.txt ^
--windows-icon-from-ico=ico.ico ^
--windows-console-mode=disable ^
--company-name="Global Rosmanka Cloud Nexus Inc" ^
--product-name="R.R.P.P." ^
--file-version=%FILEVER% ^
--output-dir=dist ^
--output-filename="Royirin Rosmontis Private Proxy Lite.exe" ^
--assume-yes-for-downloads ^
main.py
if errorlevel 1 (
echo.
echo Build failed.
pause
exit /b 1
)
echo.
echo Build complete. Output: dist\Royirin Rosmontis Private Proxy Lite.exe
pause