81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
|
|
import sys
|
|
import os
|
|
import glob
|
|
|
|
from PyInstaller.utils.hooks import collect_submodules, collect_data_files
|
|
|
|
block_cipher = None
|
|
|
|
# customtkinter ships JSON themes + assets that must be bundled
|
|
import customtkinter
|
|
ctk_path = os.path.dirname(customtkinter.__file__)
|
|
|
|
# Collect gi (PyGObject) submodules and data so pystray._appindicator works
|
|
gi_hiddenimports = collect_submodules('gi')
|
|
gi_datas = collect_data_files('gi')
|
|
|
|
# Collect GObject typelib files from the system
|
|
typelib_dirs = glob.glob('/usr/lib/*/girepository-1.0')
|
|
typelib_datas = []
|
|
for d in typelib_dirs:
|
|
typelib_datas.append((d, 'gi_typelibs'))
|
|
|
|
a = Analysis(
|
|
[os.path.join(os.path.dirname(SPEC), os.pardir, 'linux.py')],
|
|
pathex=[],
|
|
binaries=[],
|
|
datas=[(ctk_path, 'customtkinter/')] + gi_datas + typelib_datas,
|
|
hiddenimports=[
|
|
'pystray._appindicator',
|
|
'PIL._tkinter_finder',
|
|
'customtkinter',
|
|
'cryptography.hazmat.primitives.ciphers',
|
|
'cryptography.hazmat.primitives.ciphers.algorithms',
|
|
'cryptography.hazmat.primitives.ciphers.modes',
|
|
'cryptography.hazmat.backends.openssl',
|
|
'gi',
|
|
'_gi',
|
|
'gi.repository.GLib',
|
|
'gi.repository.GObject',
|
|
'gi.repository.Gtk',
|
|
'gi.repository.Gdk',
|
|
'gi.repository.AyatanaAppIndicator3',
|
|
] + gi_hiddenimports,
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
noarchive=False,
|
|
cipher=block_cipher,
|
|
)
|
|
|
|
icon_path = os.path.join(os.path.dirname(SPEC), os.pardir, 'icon.ico')
|
|
if os.path.exists(icon_path):
|
|
a.datas += [('icon.ico', icon_path, 'DATA')]
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
a.binaries,
|
|
a.zipfiles,
|
|
a.datas,
|
|
[],
|
|
name='TgWsProxy',
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=True,
|
|
upx=True,
|
|
upx_exclude=[],
|
|
runtime_tmpdir=None,
|
|
console=False,
|
|
disable_windowed_traceback=False,
|
|
argv_emulation=False,
|
|
target_arch=None,
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
)
|