82 lines
2.0 KiB
Python
82 lines
2.0 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
# PyInstaller spec file for Windows executable (Web-based UI)
|
|
|
|
block_cipher = None
|
|
|
|
import os
|
|
import sys
|
|
|
|
# Find esptool installation dynamically
|
|
try:
|
|
import esptool
|
|
esptool_dir = os.path.dirname(esptool.__file__)
|
|
print(f"Found esptool at: {esptool_dir}")
|
|
except ImportError:
|
|
print("Warning: esptool not found, stub files will not be included")
|
|
esptool_dir = None
|
|
|
|
# Build datas list - include all esptool data files
|
|
datas_list = [
|
|
('templates', 'templates'),
|
|
('static', 'static'),
|
|
]
|
|
|
|
# Add esptool targets directory (includes stub_flasher JSON files)
|
|
if esptool_dir and os.path.exists(os.path.join(esptool_dir, 'targets')):
|
|
targets_dir = os.path.join(esptool_dir, 'targets')
|
|
datas_list.append((targets_dir, 'esptool/targets'))
|
|
print(f"Including esptool targets from: {targets_dir}")
|
|
|
|
a = Analysis(
|
|
['web_flasher.py'],
|
|
pathex=[],
|
|
binaries=[],
|
|
datas=datas_list,
|
|
hiddenimports=[
|
|
'serial.tools.list_ports',
|
|
'flask',
|
|
'jinja2',
|
|
'werkzeug',
|
|
'flask_socketio',
|
|
'socketio',
|
|
'engineio.async_drivers.threading',
|
|
'esptool',
|
|
'esptool.cmds',
|
|
'esptool.loader',
|
|
'esptool.util',
|
|
],
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
win_no_prefer_redirects=False,
|
|
win_private_assemblies=False,
|
|
cipher=block_cipher,
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
a.binaries,
|
|
a.zipfiles,
|
|
a.datas,
|
|
[],
|
|
name='ESP32_Flasher',
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
upx_exclude=[],
|
|
runtime_tmpdir=None,
|
|
console=False, # No console window
|
|
disable_windowed_traceback=False,
|
|
argv_emulation=False,
|
|
target_arch=None,
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
icon=None, # Add path to .ico file if you have one
|
|
)
|