diff --git a/bundle/pyinstaller.spec b/bundle/pyinstaller.spec index bd7cec3..e315ee4 100644 --- a/bundle/pyinstaller.spec +++ b/bundle/pyinstaller.spec @@ -1,8 +1,13 @@ # -*- mode: python ; coding: utf-8 -*- +import sys from PyInstaller.utils.hooks import collect_data_files, collect_submodules block_cipher = None +# Platform-specific settings +is_windows = sys.platform == 'win32' +is_macos = sys.platform == 'darwin' + # Collect all required data files datas = [ ('../viu_media/assets', 'viu_media/assets'), @@ -13,10 +18,7 @@ datas = [ hiddenimports = [ 'click', 'rich', - 'requests', 'yt_dlp', - 'python_mpv', - 'fuzzywuzzy', 'viu_media', 'viu_media.cli.interactive.menu', 'viu_media.cli.interactive.menu.media', @@ -38,7 +40,7 @@ hiddenimports = [ ] + collect_submodules('viu_media') a = Analysis( - ['../viu_media/viu.py'], # Changed entry point + ['../viu_media/viu.py'], pathex=[], binaries=[], datas=datas, @@ -50,16 +52,18 @@ a = Analysis( win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, - strip=True, # Strip debug information - optimize=2 # Optimize bytecode noarchive=False + noarchive=False, ) pyz = PYZ( a.pure, a.zipped_data, - optimize=2 # Optimize bytecode cipher=block_cipher + cipher=block_cipher, ) +# Icon path - only use .ico on Windows +icon_path = '../viu_media/assets/icons/logo.ico' if is_windows else None + exe = EXE( pyz, a.scripts, @@ -70,7 +74,7 @@ exe = EXE( name='viu', debug=False, bootloader_ignore_signals=False, - strip=True, + strip=not is_windows, # strip doesn't work well on Windows without proper tools upx=True, upx_exclude=[], runtime_tmpdir=None, @@ -79,5 +83,5 @@ exe = EXE( target_arch=None, codesign_identity=None, entitlements_file=None, - icon='../viu_media/assets/icons/logo.ico' + icon=icon_path, )