# -*- mode: python ; coding: utf-8 -*- """PyInstaller spec for Zynq Flasher — Windows x64 single-exe build. Usage: pyinstaller --clean --noconfirm ZynqFlasher.spec → output: dist/ZynqFlasher.exe """ from PyInstaller.utils.hooks import collect_data_files, collect_submodules block_cipher = None a = Analysis( ['app.py'], pathex=['src'], binaries=[], datas=[ # CustomTkinter themes, fonts, icons — auto-collected *collect_data_files('customtkinter'), # Default config shipped as template ('config/default_config.yaml', 'config'), ], hiddenimports=[ *collect_submodules('customtkinter'), 'darkdetect', 'yaml', 'serial', 'serial.tools', 'serial.tools.list_ports', ], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='ZynqFlasher', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, # show console for terminal log output disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, )