Eigene Anwendung neben der Qt-Version: PlaytubeEdge.exe, eigene Installer-ID, eigener Datenordner, Updates nur ueber Releases mit Tag *-edge.
63 lines
2.0 KiB
RPMSpec
63 lines
2.0 KiB
RPMSpec
# PyInstaller-Spec fuer Playtube.
|
|
# Bauen mit: pyinstaller packaging/playtube.spec --noconfirm
|
|
# (aus dem Projekt-Root ausfuehren, oder packaging/build.ps1 benutzen)
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from PyInstaller.utils.hooks import collect_all
|
|
|
|
block_cipher = None
|
|
|
|
ROOT = Path(SPECPATH).resolve().parent
|
|
|
|
# Edge-Variante: pythonnet + clr_loader (bringen Python.Runtime.dll/ClrLoader.dll mit) und die
|
|
# Microsoft-WebView2-DLLs aus vendor/webview2 (siehe playtube/webview2_runtime.py).
|
|
pythonnet_datas, pythonnet_binaries, pythonnet_hidden = collect_all("pythonnet")
|
|
clr_datas, clr_binaries, clr_hidden = collect_all("clr_loader")
|
|
|
|
a = Analysis(
|
|
[str(ROOT / "main.py")],
|
|
pathex=[str(ROOT)],
|
|
binaries=pythonnet_binaries + clr_binaries,
|
|
datas=[
|
|
(str(ROOT / "assets"), "assets"),
|
|
(str(ROOT / "config.json"), "."),
|
|
(str(ROOT / "vendor" / "webview2"), "vendor/webview2"),
|
|
] + pythonnet_datas + clr_datas,
|
|
hiddenimports=["pypresence", "clr"] + pythonnet_hidden + clr_hidden,
|
|
hookspath=[],
|
|
runtime_hooks=[],
|
|
# Kein QtWebEngine mehr (WebView2 statt dessen) - haelt das Paket klein.
|
|
excludes=["PySide6.QtWebEngineCore", "PySide6.QtWebEngineWidgets", "PySide6.QtWebEngineQuick"],
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
# icon/version-Ressourcen sind Windows-spezifisch (.ico + Versionsressource) - unter
|
|
# Linux/macOS gibt es diese Konzepte fuer ELF-Binaries nicht, deshalb nur dort setzen.
|
|
exe_kwargs = dict(
|
|
exclude_binaries=True,
|
|
name="PlaytubeEdge",
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=False,
|
|
console=False,
|
|
)
|
|
if sys.platform == "win32":
|
|
exe_kwargs["icon"] = str(ROOT / "assets" / "icon.ico")
|
|
exe_kwargs["version"] = str(ROOT / "packaging" / "version_info.txt")
|
|
|
|
exe = EXE(pyz, a.scripts, [], **exe_kwargs)
|
|
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.zipfiles,
|
|
a.datas,
|
|
strip=False,
|
|
upx=False,
|
|
name="PlaytubeEdge",
|
|
)
|