Fix taskbar icon.

This commit is contained in:
2026-03-25 17:01:13 +01:00
parent 1a1a287471
commit d22b857fe1
3 changed files with 68 additions and 18 deletions
+48 -17
View File
@@ -1,23 +1,45 @@
# -*- mode: python ; coding: utf-8 -*-
import os
from pathlib import Path
# 🔥 Base path fiable (indépendant du dossier de lancement)
BASE_DIR = Path(os.getcwd()).resolve()
if not (BASE_DIR / "src").exists():
raise Exception("Lance PyInstaller depuis la racine du projet")
print("BASE_DIR =", BASE_DIR)
# ------------------------------------------------------------------
# Analysis
# ------------------------------------------------------------------
a = Analysis(
['src\\main.py'],
[str(BASE_DIR / 'src' / 'main.py')],
pathex=['src'],
binaries=[],
datas=[
('.\\styles\\styles.qss', 'styles'),
('.\\ui\\mainwindow_vertical_pager.ui', 'ui')
# Assets critiques
(str(BASE_DIR / 'assets' / 'Icon.ico'), 'assets'),
# Styles
(str(BASE_DIR / 'styles' / 'styles.qss'), 'styles'),
# UI (tu peux ajouter d'autres .ui ici)
(str(BASE_DIR / 'ui' / 'mainwindow_vertical_pager.ui'), 'ui'),
],
hiddenimports=[
"asyncio",
"pypresence",
"pypresence.baseclient",
"pypresence"
],
hookspath=[],
hooksconfig={
"qt_plugins": ["platforms", "styles"]
# 🔥 STRICT MINIMUM
"qt_plugins": ["platforms"]
},
runtime_hooks=[],
# 🔥 Exclusions
excludes=[
# PySide6 - modules non utilisés
'PySide6.Qt3DAnimation',
@@ -173,8 +195,9 @@ a = Analysis(
optimize=2,
)
# --- Filtre des DLLs Qt inutiles ---
# Ces DLLs sont incluses par analyse binaire malgré les excludes Python
# ------------------------------------------------------------------
# 🔥 Nettoyage DLL Qt (SAFE)
# ------------------------------------------------------------------
unwanted_dlls = [
'Qt6Pdf',
'Qt6Quick',
@@ -222,13 +245,13 @@ 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')]
# ------------------------------------------------------------------
# 🔥 Suppression traductions Qt (gain taille)
# ------------------------------------------------------------------
a.datas = [
f for f in a.datas
if "translations" not in f[0].lower() and not f[0].endswith('.qm')
]
pyz = PYZ(a.pure, a.zipped_data)
@@ -243,6 +266,8 @@ exe = EXE(
debug=False,
bootloader_ignore_signals=False,
strip=False,
# 🔥 Compression max
upx=True,
upx_exclude=[
"_uuid.pyd",
@@ -256,11 +281,17 @@ exe = EXE(
"msvcp*.dll",
],
runtime_tmpdir=None,
console=True,
console=False,
# 🔥 ONEFILE
onefile=True,
disable_windowed_traceback=True,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=['assets\\Icon.ico'],
# 🔥 Icône EXE (important mais pas suffisant seul)
icon=str(BASE_DIR / 'assets' / 'Icon.ico'),
)