Add PyInstaller Windows release build system.

Frozen builds resolve paths correctly, stage portable onedir output, and zip releases for distribution.
This commit is contained in:
Dr Jones
2026-05-22 19:20:06 -07:00
parent bef3de1245
commit 05a32015db
10 changed files with 548 additions and 24 deletions

View File

@@ -67,6 +67,45 @@ You can also launch directly:
python main.py
```
## Build Windows Release (PyInstaller)
Production builds produce a portable **onedir** folder under `dist/GODCWAK/` and a zip under `release/`.
From PowerShell in the project directory:
```powershell
# One-time: activate venv and install build deps
.\.venv\Scripts\Activate.ps1
pip install -r requirements-build.txt
# Build release (no console window)
python build\build_release.py --clean
# Troubleshooting build (shows console + logs)
python build\build_release.py --clean --debug
```
Or double-click `build_release.bat` at the project root.
**Output layout**
```text
dist/GODCWAK/
GODCWAK.exe Main application
Start GODCWAK.bat Optional launcher
config_ollama.json Writable Ollama settings (seeded on first run)
data/ Passwords, proxies, attempt logs (created at runtime)
_internal/ Bundled Python runtime and dependencies
release/
GODCWAK-v1.0-win64-YYYYMMDD.zip
```
**Notes**
- Default release excludes CuPy/Numba/Playwright to keep the bundle smaller; use `--gpu` if CUDA libraries are installed and you want them bundled.
- Place `assets/icon.ico` before building to embed a custom application icon.
- Packaged builds log to `data/godcwak.log` and show error dialogs instead of a console window.
## GPU Notes
GODCWAK checks for CuPy at startup. With `cupy-cuda12x` installed and a working NVIDIA CUDA-capable GPU, password-combination index generation can use the GPU for larger workloads. Without CUDA, the app falls back to NumPy CPU acceleration or pure Python.