# -*- mode: python ; coding: utf-8 -*- # From SyncGames/agent: pyinstaller packaging/pyinstaller.spec import os from pathlib import Path from PyInstaller.utils.hooks import collect_submodules project_root = Path(os.path.dirname(os.path.abspath(SPEC))).parent repo_root = project_root.parent block_cipher = None hidden = collect_submodules("syncgames") + ["boto3", "botocore", "psutil"] datas = [] games_src = repo_root / "config" / "games" if games_src.is_dir(): for toml in sorted(games_src.glob("*.toml")): datas.append((str(toml), "bundled_config/games")) systemd_src = repo_root / "systemd" if systemd_src.is_dir(): for unit in ("syncgames-agent.service", "syncgames-watch@.service", "install-user-units.sh"): p = systemd_src / unit if p.exists(): datas.append((str(p), "bundled_systemd")) a = Analysis( [str(project_root / "packaging" / "entrypoint.py")], pathex=[str(project_root)], binaries=[], datas=datas, hiddenimports=hidden, hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, [], exclude_binaries=True, name="SyncGames", debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=False, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, ) coll = COLLECT( exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name="SyncGames", )