68 lines
1.8 KiB
RPMSpec
68 lines
1.8 KiB
RPMSpec
# -*- mode: python ; coding: utf-8 -*-
|
|
"""PyInstaller spec: build the PSP Preservation Tool (onedir).
|
|
|
|
Bundles the read-only resources (DATs, PS1 loader, offline cover bundles,
|
|
icons) under ``lib/`` next to the executable. User-writable data
|
|
(credentials, manual covers, PS1 templates, NPS cache, library DB, cover
|
|
cache) lives in the OS state dir at runtime — see ``app/config.py``.
|
|
|
|
Usage: pyinstaller --clean --noconfirm psp-preserve.spec
|
|
Output: dist/psp-preserve/
|
|
"""
|
|
from PyInstaller.utils.hooks import collect_dynamic_libs, collect_submodules
|
|
|
|
datas = [
|
|
("data/dats", "data/dats"),
|
|
("data/loader", "data/loader"),
|
|
("data/supplement.json", "data"),
|
|
("data/covers/libretro-covers.zip", "data/covers"),
|
|
("data/covers/openvgdb-covers.zip", "data/covers"),
|
|
("data/covers/libretro-index.json", "data/covers"),
|
|
("data/covers/openvgdb-index.json", "data/covers"),
|
|
("data/covers/UMD_COVER_TEMPLATE.png", "data/covers"),
|
|
("data/covers/UMD_COVER_TEMPLATE_FEATURE.png", "data/covers"),
|
|
("data/covers/UMD_GAME_COVER_TEMPLATE.png", "data/covers"),
|
|
("img/app-icon.png", "img"),
|
|
("img/chevron.png", "img"),
|
|
("packaging/psp-preserve.desktop", "."),
|
|
]
|
|
|
|
a = Analysis(
|
|
["run.py"],
|
|
pathex=[],
|
|
binaries=collect_dynamic_libs("curl_cffi"),
|
|
datas=datas,
|
|
hiddenimports=collect_submodules("curl_cffi"),
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=["tkinter", "unittest", "pydoc"],
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[],
|
|
exclude_binaries=True,
|
|
name="psp-preserve",
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=False,
|
|
console=False,
|
|
disable_windowed_traceback=False,
|
|
contents_directory="lib",
|
|
)
|
|
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.datas,
|
|
strip=False,
|
|
upx=False,
|
|
name="psp-preserve",
|
|
)
|