food-market/food-market.spec

90 lines
2.5 KiB
RPMSpec
Raw Permalink Normal View History

# -*- mode: python ; coding: utf-8 -*-
"""Сборка одного exe: pyinstaller food-market.spec
Готовый food-market.exe кладётся в корень клона репозитория рядом с папкой
data, где лежит зашифрованная база. Приложение ищет data/vault.fmdb
относительно самого exe (см. app/paths.py).
"""
# Qt тянет за собой много того, что этому приложению не нужно. Без чистки
# onefile раздувается до ~150 МБ, с ней укладывается примерно вдвое меньше.
EXCLUDES = [
"PySide6.QtWebEngineCore",
"PySide6.QtWebEngineWidgets",
"PySide6.QtWebEngineQuick",
"PySide6.QtQuick",
"PySide6.QtQuick3D",
"PySide6.QtQuickWidgets",
"PySide6.QtQml",
"PySide6.Qt3DCore",
"PySide6.Qt3DRender",
"PySide6.Qt3DInput",
"PySide6.Qt3DLogic",
"PySide6.Qt3DAnimation",
"PySide6.Qt3DExtras",
"PySide6.QtMultimedia",
"PySide6.QtMultimediaWidgets",
"PySide6.QtCharts",
"PySide6.QtDataVisualization",
"PySide6.QtBluetooth",
"PySide6.QtNfc",
"PySide6.QtPositioning",
"PySide6.QtSerialPort",
"PySide6.QtSensors",
"PySide6.QtTest",
"PySide6.QtSql",
"PySide6.QtDesigner",
"PySide6.QtHelp",
"PySide6.QtUiTools",
"PySide6.QtPdf",
"PySide6.QtPdfWidgets",
"PySide6.QtSpatialAudio",
"PySide6.QtTextToSpeech",
"PySide6.QtWebChannel",
"PySide6.QtWebSockets",
# Не наши зависимости — если утащатся транзитом, только раздуют файл.
"tkinter",
"unittest",
"pydoc",
"pytest",
"numpy",
"matplotlib",
"PIL",
]
a = Analysis(
["run.py"],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=EXCLUDES,
noarchive=False,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name="food-market",
debug=False,
bootloader_ignore_signals=False,
strip=False,
# UPX выключен намеренно: сжатые им exe регулярно ловят ложные
# срабатывания антивирусов, а выигрыш в размере того не стоит.
upx=False,
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)