Browse Source

Refactor binaries filtering and update dependencies

Introduce a mechanism to filter blacklisted binaries from the build configuration and update the conandata.yml with a new blacklist section. Additionally, remove unnecessary dependencies from requirements.txt, particularly entries for PyQt6-NetworkAuth and related packages.

Contribute to CURA-12229
Jelle Spijker 4 months ago
parent
commit
5dd6700031
3 changed files with 12 additions and 11 deletions
  1. 7 0
      conandata.yml
  2. 5 1
      conanfile.py
  3. 0 10
      requirements.txt

+ 7 - 0
conandata.yml

@@ -124,6 +124,13 @@ pyinstaller:
         Windows: "./icons/Cura.ico"
         Macos: "./icons/cura.icns"
         Linux: "./icons/cura-128.png"
+    blacklist:
+      - "libassimp.so"
+      - "PyQt6/Qt6/qml/QtQuick3D" # directory
+      - "libqtquick3deffectplugin.so"
+      - "libqtquick3dphysicshelpersplugin.so"
+      - "libqtquick3dparticleeffectsplugin.so"
+      - "etc......."
 pycharm_targets:
   - jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
     module_name: Cura

+ 5 - 1
conanfile.py

@@ -281,13 +281,17 @@ class CuraConan(ConanFile):
         version = self.conf.get("user.cura:version", default = self.version, check_type = str)
         cura_version = Version(version)
 
+        # filter all binary files in binaries on the blacklist
+        blacklist = pyinstaller_metadata["blacklist"]
+        filtered_binaries = [b for b in binaries if b not in blacklist]
+
         with open(os.path.join(location, "UltiMaker-Cura.spec"), "w") as f:
             f.write(pyinstaller.render(
                 name = str(self.options.display_name).replace(" ", "-"),
                 display_name = self._app_name,
                 entrypoint = entrypoint_location,
                 datas = datas,
-                binaries = binaries,
+                binaries = filtered_binaries,
                 venv_script_path = str(self._script_dir),
                 hiddenimports = pyinstaller_metadata["hiddenimports"],
                 collect_all = pyinstaller_metadata["collect_all"],

+ 0 - 10
requirements.txt

@@ -31,16 +31,6 @@ PyQt6-Qt6==6.6.0 \
     --hash=sha256:8cb30d64a4d32465ea1686bc827cbe452225fb387c4873356b0fa7b9ae63534f \
     --hash=sha256:a151f34712cd645111e89cb30b02e5fb69c9dcc3603ab3c03a561e874bd7cbcf \
     --hash=sha256:e5483ae04bf107411c7469f1be9f9e2eb9840303e788b3ac524fe30af90d45f4
-PyQt6-NetworkAuth==6.6.0 \
-    --hash=sha256:7b90b81792fe53105287c8cbb5e4b22bc44a482268ffb7d3e33f852807f86182 \
-    --hash=sha256:c7e2335159aa795e2fe6fb069ccce6308672ab80f26c50fab57caf957371cbb5 \
-    --hash=sha256:cdfc0bfaea16a9e09f075bdafefb996aa9fdec392052ba4fb3cbac233c1958fb \
-    --hash=sha256:f60ff9a62f5129dc2a9d4c495fb47f9a03e4dfb666b50fb7d61f46e89bf7b6a2
-PyQt6-NetworkAuth-Qt6==6.6.0 \
-    --hash=sha256:481d9093e1fb1ac6843d8beabcd359cc34b74b9a2cbb3e2b68d96bd3f178d4e0 \
-    --hash=sha256:4cc48fd375730a0ba5fbed9d64abb2914f587377560a78a63aff893f9e276a45 \
-    --hash=sha256:5006deabf55304d4a3e0b3c954f93e5835546b11e789d14653a2493d12d3a063 \
-    --hash=sha256:bcd56bfc892fec961c51eba3c0bf32ba8317a762d9e254d3830569611ed569d6
 
 certifi==2023.5.7; \
     --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716