2022-08-08 19:32:29 +00:00
|
|
|
# -*- mode: python ; coding: utf-8 -*-
|
2022-08-17 19:32:58 +00:00
|
|
|
from os.path import join
|
|
|
|
from platform import system
|
2022-08-08 19:32:29 +00:00
|
|
|
from PyInstaller.utils.hooks import copy_metadata
|
2022-08-19 15:42:49 +00:00
|
|
|
import sysconfig
|
2022-08-08 19:32:29 +00:00
|
|
|
|
2022-08-19 15:42:49 +00:00
|
|
|
datas = [
|
|
|
|
('src/interface/web', 'src/interface/web'),
|
|
|
|
(f'{sysconfig.get_paths()["purelib"]}/transformers', 'transformers')
|
|
|
|
]
|
2022-08-08 19:32:29 +00:00
|
|
|
datas += copy_metadata('tqdm')
|
|
|
|
datas += copy_metadata('regex')
|
|
|
|
datas += copy_metadata('requests')
|
|
|
|
datas += copy_metadata('packaging')
|
|
|
|
datas += copy_metadata('filelock')
|
|
|
|
datas += copy_metadata('numpy')
|
|
|
|
datas += copy_metadata('tokenizers')
|
|
|
|
|
|
|
|
block_cipher = None
|
|
|
|
|
|
|
|
a = Analysis(
|
|
|
|
['src/main.py'],
|
|
|
|
pathex=[],
|
|
|
|
binaries=[],
|
|
|
|
datas=datas,
|
|
|
|
hiddenimports=['huggingface_hub.repository'],
|
|
|
|
hookspath=[],
|
|
|
|
hooksconfig={},
|
|
|
|
runtime_hooks=[],
|
|
|
|
excludes=[],
|
|
|
|
win_no_prefer_redirects=False,
|
|
|
|
win_private_assemblies=False,
|
|
|
|
cipher=block_cipher,
|
|
|
|
noarchive=False,
|
|
|
|
)
|
2022-08-17 19:32:58 +00:00
|
|
|
|
2022-08-18 17:54:59 +00:00
|
|
|
# Filter out unused and/or duplicate shared libs
|
2022-08-18 08:25:52 +00:00
|
|
|
torch_lib_paths = {
|
2022-08-18 17:54:59 +00:00
|
|
|
join('torch', 'lib', 'libtorch_cuda.so'),
|
|
|
|
join('torch', 'lib', 'libtorch_cpu.so'),
|
2022-08-18 08:25:52 +00:00
|
|
|
}
|
|
|
|
a.datas = [entry for entry in a.datas if not entry[0] in torch_lib_paths]
|
2022-08-17 19:32:58 +00:00
|
|
|
|
2022-08-18 17:52:34 +00:00
|
|
|
a.datas = [entry for entry in a.datas if not 'torch/_C.cp' in entry[0]]
|
|
|
|
a.datas = [entry for entry in a.datas if not 'torch/_dl.cp' in entry[0]]
|
|
|
|
|
2022-08-08 19:32:29 +00:00
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
|
2022-08-18 17:50:25 +00:00
|
|
|
if system() != 'Darwin':
|
|
|
|
# Add Splash screen to show on app launch
|
|
|
|
splash = Splash(
|
|
|
|
'src/interface/web/assets/icons/favicon-144x144.png',
|
|
|
|
binaries=a.binaries,
|
|
|
|
datas=a.datas,
|
|
|
|
text_pos=(10, 50),
|
|
|
|
text_size=12,
|
|
|
|
text_color='blue',
|
|
|
|
minify_script=True,
|
|
|
|
always_on_top=True
|
|
|
|
)
|
2022-08-17 19:32:58 +00:00
|
|
|
|
2022-08-18 17:50:25 +00:00
|
|
|
exe = EXE(
|
|
|
|
pyz,
|
|
|
|
a.scripts,
|
|
|
|
a.binaries,
|
|
|
|
a.zipfiles,
|
|
|
|
a.datas,
|
|
|
|
splash,
|
|
|
|
splash.binaries,
|
|
|
|
[],
|
|
|
|
name='Khoj',
|
|
|
|
debug=False,
|
|
|
|
bootloader_ignore_signals=False,
|
|
|
|
strip=False,
|
|
|
|
upx=True,
|
|
|
|
upx_exclude=[],
|
|
|
|
runtime_tmpdir=None,
|
|
|
|
console=False,
|
|
|
|
disable_windowed_traceback=False,
|
|
|
|
argv_emulation=False,
|
|
|
|
target_arch='x86_64',
|
|
|
|
codesign_identity=None,
|
|
|
|
entitlements_file=None,
|
2022-08-18 19:07:49 +00:00
|
|
|
icon='src/interface/web/assets/icons/favicon-144x144.ico',
|
2022-08-18 17:50:25 +00:00
|
|
|
)
|
|
|
|
else:
|
|
|
|
exe = EXE(
|
|
|
|
pyz,
|
|
|
|
a.scripts,
|
|
|
|
a.binaries,
|
|
|
|
a.zipfiles,
|
|
|
|
a.datas,
|
|
|
|
[],
|
|
|
|
name='Khoj',
|
|
|
|
debug=False,
|
|
|
|
bootloader_ignore_signals=False,
|
|
|
|
strip=False,
|
|
|
|
upx=True,
|
|
|
|
upx_exclude=[],
|
|
|
|
runtime_tmpdir=None,
|
|
|
|
console=False,
|
|
|
|
disable_windowed_traceback=False,
|
|
|
|
argv_emulation=False,
|
|
|
|
target_arch='x86_64',
|
|
|
|
codesign_identity=None,
|
|
|
|
entitlements_file=None,
|
|
|
|
icon='src/interface/web/assets/icons/favicon.icns',
|
|
|
|
)
|
2022-08-17 19:32:58 +00:00
|
|
|
app = BUNDLE(
|
|
|
|
exe,
|
|
|
|
name='Khoj.app',
|
|
|
|
icon='src/interface/web/assets/icons/favicon.icns',
|
|
|
|
bundle_identifier=None,
|
|
|
|
)
|