diff --git a/linedance-app/build_windows.spec b/linedance-app/build_windows.spec index e56deb62..00bcba4f 100644 --- a/linedance-app/build_windows.spec +++ b/linedance-app/build_windows.spec @@ -1,22 +1,24 @@ # -*- mode: python ; coding: utf-8 -*- -from PyInstaller.utils.hooks import collect_all, collect_submodules +from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs block_cipher = None -# Saml ALT fra PyQt6 inkl. plugins og DLL-filer -pyqt6_datas, pyqt6_binaries, pyqt6_hiddenimports = collect_all('PyQt6') - a = Analysis( ['main.py'], pathex=['.'], - binaries=pyqt6_binaries, - datas=pyqt6_datas, - hiddenimports=pyqt6_hiddenimports + [ + binaries=[], + datas=[ + ('translations', 'translations'), + ('ui', 'ui'), + ('local', 'local'), + ('player', 'player'), + ], + hiddenimports=[ 'PyQt6.sip', 'PyQt6.QtCore', 'PyQt6.QtGui', 'PyQt6.QtWidgets', - # UI moduler + 'PyQt6.QtNetwork', 'ui.main_window', 'ui.playlist_panel', 'ui.library_panel', @@ -24,30 +26,81 @@ a = Analysis( 'ui.themes', 'ui.vu_meter', 'ui.scan_worker', + 'ui.bpm_worker', 'ui.tag_editor', 'ui.login_dialog', 'ui.settings_dialog', - 'ui.playlist_manager', + 'ui.register_dialog', + 'ui.playlist_browser', + 'ui.playlist_info_dialog', + 'ui.dance_info_dialog', + 'ui.dance_picker_dialog', 'ui.next_up_bar', - # Player + local 'player.player', 'local.local_db', 'local.tag_reader', 'local.file_watcher', - # Biblioteker - 'mutagen', 'mutagen.mp3', 'mutagen.id3', 'mutagen.flac', + 'local.scanner', + 'translations', + 'translations.da', + 'translations.en', + 'mutagen', + 'mutagen.mp3', 'mutagen.id3', 'mutagen.flac', 'mutagen.mp4', 'mutagen.oggvorbis', 'mutagen.ogg', 'mutagen.wave', 'mutagen.aiff', 'mutagen.asf', - 'watchdog', 'watchdog.observers', 'watchdog.events', - 'watchdog.observers.winapi', - 'vlc', 'sqlite3', + 'watchdog', + 'watchdog.observers', + 'watchdog.observers.polling', + 'watchdog.events', + 'vlc', + 'sqlite3', ], hookspath=[], - hooksconfig={}, runtime_hooks=[], - excludes=['tkinter', 'matplotlib', 'pandas', 'scipy', 'IPython'], - win_no_prefer_redirects=False, - win_private_assemblies=False, + excludes=[ + # Ubrugte store pakker + 'tkinter', 'tk', 'tcl', + 'matplotlib', 'pandas', 'scipy', 'numpy', + 'IPython', 'jupyter', 'notebook', + 'PIL', 'Pillow', + 'cv2', 'sklearn', + 'PyQt6.QtWebEngineWidgets', + 'PyQt6.QtWebEngineCore', + 'PyQt6.QtWebEngine', + 'PyQt6.QtMultimedia', + 'PyQt6.QtMultimediaWidgets', + 'PyQt6.QtBluetooth', + 'PyQt6.QtNfc', + 'PyQt6.QtPositioning', + 'PyQt6.QtLocation', + 'PyQt6.QtSensors', + 'PyQt6.QtSerialPort', + 'PyQt6.QtSql', + 'PyQt6.QtTest', + 'PyQt6.QtXml', + 'PyQt6.QtOpenGL', + 'PyQt6.QtOpenGLWidgets', + 'PyQt6.Qt3DCore', + 'PyQt6.Qt3DRender', + 'PyQt6.Qt3DInput', + 'PyQt6.Qt3DLogic', + 'PyQt6.Qt3DAnimation', + 'PyQt6.Qt3DExtras', + 'PyQt6.QtCharts', + 'PyQt6.QtDataVisualization', + 'PyQt6.QtQuick', + 'PyQt6.QtQuickWidgets', + 'PyQt6.QtQml', + 'PyQt6.QtRemoteObjects', + 'PyQt6.QtScxml', + 'PyQt6.QtStateMachine', + 'email', 'html', 'http', 'urllib', + 'xml', 'xmlrpc', + 'unittest', 'doctest', 'pdb', + 'difflib', 'inspect', + 'pydoc', 'py_compile', 'compileall', + 'distutils', 'setuptools', 'pkg_resources', + ], cipher=block_cipher, noarchive=False, ) @@ -57,28 +110,26 @@ pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, + a.binaries, + a.zipfiles, + a.datas, [], - exclude_binaries=True, name='LineDancePlayer', debug=False, bootloader_ignore_signals=False, strip=False, - upx=False, # UPX kan give problemer med PyQt6 DLL-filer - console=False, # Ingen konsol-vindue + upx=True, # UPX komprimering — reducer størrelse ~30% + upx_exclude=[ + 'vcruntime140.dll', + 'msvcp140.dll', + 'python3*.dll', + 'Qt6*.dll', + ], + console=False, disable_windowed_traceback=False, target_arch=None, codesign_identity=None, entitlements_file=None, icon=None, -) - -coll = COLLECT( - exe, - a.binaries, - a.zipfiles, - a.datas, - strip=False, - upx=False, - upx_exclude=[], - name='LineDancePlayer', -) + onefile=True, +) \ No newline at end of file diff --git a/linedance-app/upx.exe b/linedance-app/upx.exe new file mode 100644 index 00000000..f092ae5b Binary files /dev/null and b/linedance-app/upx.exe differ