# -*- mode: python ; coding: utf-8 -*- """PyInstaller spec for BoltClam. Default: a one-folder Windows build (dist/BoltClam/BoltClam.exe), which is what the Inno Setup installer packages. Set BOLTCLAM_ONEFILE=1 for a single BoltClam.exe instead. """ from pathlib import Path import os import sys ROOT = Path(SPECPATH).resolve() ONE_FILE = os.environ.get("BOLTCLAM_ONEFILE") == "1" VERSION_FILE = ROOT / "resources" / "version_info.txt" ICON_FILE = ROOT / "resources" / "boltclam.ico" a = Analysis( [str(ROOT / "src" / "boltclam" / "__main__.py")], pathex=[str(ROOT / "src")], binaries=[], datas=[(str(ROOT / "resources"), "resources")], hiddenimports=[ "PyQt6.QtCore", "PyQt6.QtGui", "PyQt6.QtWidgets", "PyQt6.sip", ], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=["tkinter", "unittest", "pydoc"], noarchive=False, optimize=1, ) pyz = PYZ(a.pure) exe_kwargs = dict( name="BoltClam", debug=False, bootloader_ignore_signals=False, strip=False, upx=False, console=False, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, icon=str(ICON_FILE) if ICON_FILE.exists() else None, version=str(VERSION_FILE) if sys.platform == "win32" and VERSION_FILE.exists() else None, ) if ONE_FILE: exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], **exe_kwargs, ) else: exe = EXE( pyz, a.scripts, [], exclude_binaries=True, **exe_kwargs, ) coll = COLLECT( exe, a.binaries, a.datas, strip=False, upx=False, upx_exclude=[], name="BoltClam", )