267 lines
5.8 KiB
Python
267 lines
5.8 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
|
|
a = Analysis(
|
|
['src\\main.py'],
|
|
pathex=['src'],
|
|
binaries=[],
|
|
datas=[
|
|
('.\\styles\\styles.qss', 'styles'),
|
|
('.\\ui\\mainwindow_vertical_pager.ui', 'ui')
|
|
],
|
|
hiddenimports=[
|
|
"asyncio",
|
|
"pypresence",
|
|
"pypresence.baseclient",
|
|
],
|
|
hookspath=[],
|
|
hooksconfig={
|
|
"qt_plugins": ["platforms", "styles"]
|
|
},
|
|
runtime_hooks=[],
|
|
excludes=[
|
|
# PySide6 - modules non utilisés
|
|
'PySide6.Qt3DAnimation',
|
|
'PySide6.Qt3DCore',
|
|
'PySide6.Qt3DExtras',
|
|
'PySide6.Qt3DInput',
|
|
'PySide6.Qt3DLogic',
|
|
'PySide6.Qt3DRender',
|
|
'PySide6.QtAxContainer',
|
|
'PySide6.QtBluetooth',
|
|
'PySide6.QtCharts',
|
|
'PySide6.QtConcurrent',
|
|
'PySide6.QtDataVisualization',
|
|
'PySide6.QtDesigner',
|
|
'PySide6.QtHelp',
|
|
'PySide6.QtLocation',
|
|
# 'PySide6.QtMultimedia', # Nécessaire pour l'audio
|
|
'PySide6.QtMultimediaWidgets',
|
|
# 'PySide6.QtNetwork', # Dépendance à QtMultimedia
|
|
'PySide6.QtNetworkAuth',
|
|
'PySide6.QtNfc',
|
|
'PySide6.QtOpenGL',
|
|
'PySide6.QtOpenGLWidgets',
|
|
'PySide6.QtPdf',
|
|
'PySide6.QtPdfWidgets',
|
|
'PySide6.QtPositioning',
|
|
'PySide6.QtPrintSupport',
|
|
'PySide6.QtQml',
|
|
'PySide6.QtQuick',
|
|
'PySide6.QtQuick3D',
|
|
'PySide6.QtQuickControls2',
|
|
'PySide6.QtQuickWidgets',
|
|
'PySide6.QtRemoteObjects',
|
|
'PySide6.QtScxml',
|
|
'PySide6.QtSensors',
|
|
'PySide6.QtSerialBus',
|
|
'PySide6.QtSerialPort',
|
|
'PySide6.QtSpatialAudio',
|
|
'PySide6.QtSql',
|
|
'PySide6.QtStateMachine',
|
|
'PySide6.QtSvg',
|
|
'PySide6.QtSvgWidgets',
|
|
'PySide6.QtTest',
|
|
'PySide6.QtTextToSpeech',
|
|
'PySide6.QtWebChannel',
|
|
'PySide6.QtWebEngineCore',
|
|
'PySide6.QtWebEngineQuick',
|
|
'PySide6.QtWebEngineWidgets',
|
|
'PySide6.QtWebSockets',
|
|
'PySide6.QtXml',
|
|
|
|
# Tests / dev tools
|
|
"test",
|
|
"tests",
|
|
"unittest",
|
|
"doctest",
|
|
"pydoc",
|
|
"pydoc_data",
|
|
|
|
# Packaging / build tooling
|
|
"distutils",
|
|
"setuptools",
|
|
"pkg_resources",
|
|
"pip",
|
|
"ensurepip",
|
|
|
|
# GUI stdlib inutiles
|
|
"tkinter",
|
|
"turtle",
|
|
"idlelib",
|
|
"curses",
|
|
|
|
# Legacy / obsolete
|
|
"lib2to3",
|
|
"2to3",
|
|
"nis",
|
|
"ossaudiodev",
|
|
"spwd",
|
|
|
|
# RPC / servers non utilisés
|
|
"xmlrpc",
|
|
"wsgiref",
|
|
"cgi",
|
|
"cgitb",
|
|
|
|
# Data / DB non utilisés
|
|
"sqlite3",
|
|
"dbm",
|
|
"dbm.dumb",
|
|
"csv",
|
|
|
|
# Concurrency non utilisée dans ton code
|
|
"multiprocessing",
|
|
#"concurrent",
|
|
#"asyncio",
|
|
|
|
# REPL / terminal
|
|
"readline",
|
|
"code",
|
|
# "codeop", # Nécessaire
|
|
"cmd",
|
|
|
|
# mail / network protocols non utilisés
|
|
"mailbox",
|
|
"imaplib",
|
|
"poplib",
|
|
"smtplib",
|
|
"nntplib",
|
|
"telnetlib",
|
|
"ftplib",
|
|
"netrc",
|
|
|
|
# Docs / browsing / parsing non utilisés directement
|
|
"pydoc_data",
|
|
"mailbox",
|
|
"imaplib",
|
|
"poplib",
|
|
"smtplib",
|
|
"nntplib",
|
|
"telnetlib",
|
|
|
|
# XML optionnel : agressif mais plutôt safe ici
|
|
"xml.dom",
|
|
"xml.etree",
|
|
"xml.parsers",
|
|
"xml.sax",
|
|
|
|
# Compression / archive optionnelles si non utilisées
|
|
"bz2",
|
|
"lzma",
|
|
"gzip",
|
|
#"zipfile", # Nécessaire à cause de pyinstaller
|
|
"tarfile",
|
|
"zipapp",
|
|
|
|
# audio stdlib non utilisée
|
|
"aifc",
|
|
"wave",
|
|
"sunau",
|
|
"chunk",
|
|
|
|
# divers peu probables
|
|
"mailcap",
|
|
"xdrlib",
|
|
"tabnanny",
|
|
"getpass",
|
|
|
|
# Windows services non utilisés
|
|
"win32service",
|
|
"win32serviceutil",
|
|
],
|
|
noarchive=False,
|
|
optimize=2,
|
|
)
|
|
|
|
# --- Filtre des DLLs Qt inutiles ---
|
|
# Ces DLLs sont incluses par analyse binaire malgré les excludes Python
|
|
unwanted_dlls = [
|
|
'Qt6Pdf',
|
|
'Qt6Quick',
|
|
'Qt6Qml',
|
|
'Qt6QmlModels',
|
|
'Qt6QmlWorkerScript',
|
|
'Qt6WebEngine',
|
|
'Qt6WebEngineCore',
|
|
'Qt63DCore',
|
|
'Qt63DRender',
|
|
'Qt63DAnimation',
|
|
'Qt63DExtras',
|
|
'Qt63DInput',
|
|
'Qt63DLogic',
|
|
'Qt6Charts',
|
|
'Qt6DataVisualization',
|
|
'Qt6Bluetooth',
|
|
'Qt6Nfc',
|
|
'Qt6Positioning',
|
|
'Qt6Location',
|
|
'Qt6RemoteObjects',
|
|
'Qt6Scxml',
|
|
'Qt6Sensors',
|
|
'Qt6SerialBus',
|
|
'Qt6SerialPort',
|
|
'Qt6SpatialAudio',
|
|
'Qt6StateMachine',
|
|
# 'Qt6Svg', # Dependance lecteur svg
|
|
'Qt6TextToSpeech',
|
|
'Qt6WebChannel',
|
|
'Qt6WebSockets',
|
|
'Qt6Sql',
|
|
'Qt6Test',
|
|
# 'Qt6OpenGL', # Dependance a Qt6UiTools
|
|
'Qt6PrintSupport',
|
|
# 'Qt6Xml', # Dependance fichier .ui
|
|
'Qt6Help',
|
|
'Qt6Designer',
|
|
'Qt6Concurrent',
|
|
]
|
|
|
|
a.binaries = [
|
|
(name, path, typecode)
|
|
for name, path, typecode in a.binaries
|
|
if not any(u.lower() in name.lower() for u in unwanted_dlls)
|
|
]
|
|
|
|
# AJOUTE CECI ICI :
|
|
# On filtre la liste des fichiers de données (datas)
|
|
# On exclut tout ce qui se trouve dans le dossier 'translations' de PySide6
|
|
a.datas = [f for f in a.datas if "translations" not in f[0].lower()]
|
|
|
|
# Si tu veux aussi supprimer les traductions système de Qt (fichiers .qm)
|
|
a.datas = [f for f in a.datas if not f[0].endswith('.qm')]
|
|
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
a.binaries,
|
|
a.datas,
|
|
[],
|
|
name='La Tanière Launcher',
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
upx_exclude=[
|
|
"_uuid.pyd",
|
|
"Qt6Core.dll",
|
|
"Qt6Gui.dll",
|
|
"Qt6Widgets.dll",
|
|
"Qt6UiTools.dll",
|
|
"qwindows.dll",
|
|
"python3*.dll",
|
|
"vcruntime*.dll",
|
|
"msvcp*.dll",
|
|
],
|
|
runtime_tmpdir=None,
|
|
console=False,
|
|
disable_windowed_traceback=True,
|
|
argv_emulation=False,
|
|
target_arch=None,
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
icon=['assets\\Icon.ico'],
|
|
)
|