diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 3309de7..263a753 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -103,9 +103,13 @@ jobs: run: | pyinstaller --onefile --windowed \ --add-data "build_info.json;." \ + --add-data "build_info.json;core" \ + --add-data "build_info.json;core/interface" \ --add-data "deps/aria2c.exe;." \ --add-data "core/interface/assets;core/interface/assets" \ --icon "core/interface/assets/logo.png" \ + --exclude-module PyQt6 \ + --exclude-module PyQt5 \ --hidden-import=backports.tarfile \ --hidden-import=backports \ --hidden-import=jaraco.context \ @@ -120,8 +124,12 @@ jobs: run: | pyinstaller --onefile --windowed \ --add-data "build_info.json:." \ + --add-data "build_info.json:core" \ + --add-data "build_info.json:core/interface" \ --add-data "core/interface/assets:core/interface/assets" \ --icon "core/interface/assets/logo.png" \ + --exclude-module PyQt6 \ + --exclude-module PyQt5 \ --hidden-import=backports.tarfile \ --hidden-import=backports \ --hidden-import=jaraco.context \ diff --git a/.gitignore b/.gitignore index 997ade3..9bd9aa6 100644 --- a/.gitignore +++ b/.gitignore @@ -214,3 +214,7 @@ __marimo__/ *.sublime-project *.code-workspace *.swp + +# Local build files +build-local.ps1 +build-local.bat \ No newline at end of file diff --git a/core/interface/gui.py b/core/interface/gui.py index 980fa8a..db55274 100644 --- a/core/interface/gui.py +++ b/core/interface/gui.py @@ -72,18 +72,16 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): self.log_signal.connect(self._on_log_signal) def get_asset_path(filename): + if getattr(sys, 'frozen', False): + base_path = sys._MEIPASS + else: + base_path = os.path.dirname(__file__) - asset_paths = [ - os.path.join('core/interface/assets', filename), - os.path.join(os.path.dirname(__file__), '..', 'assets', filename), - os.path.join(os.path.dirname(sys.executable), 'core/interface/assets', filename), - ] - - for path in asset_paths: - if os.path.exists(path): - return path - - return asset_paths[0] + asset_path = os.path.join(base_path, 'core', 'interface', 'assets', filename) + if os.path.exists(asset_path): + return asset_path + + return os.path.join('core', 'interface', 'assets', filename) self.setWindowIcon(QIcon(get_asset_path("logo.png")))