diff --git a/conandata.yml b/conandata.yml index a531564622..0da3e8bc1d 100644 --- a/conandata.yml +++ b/conandata.yml @@ -220,7 +220,6 @@ Windows: "./icons/Cura.ico" Macos: "./icons/cura.icns" Linux: "./icons/cura-128.png" - "5.2.0-beta.1": requirements: - "pyarcus/5.2.0-beta.1" diff --git a/conanfile.py b/conanfile.py index c032d6d83f..a932f0a232 100644 --- a/conanfile.py +++ b/conanfile.py @@ -7,7 +7,7 @@ from conan import ConanFile from conan.tools.files import copy, rmdir, save from conan.tools.env import VirtualRunEnv, Environment from conan.tools.scm import Version -from conan.errors import ConanInvalidConfiguration +from conan.errors import ConanInvalidConfiguration, ConanException required_conan_version = ">=1.50.0" @@ -208,20 +208,24 @@ class CuraConan(ConanFile): else: continue if not src_path.exists(): + self.output.warning(f"Source path for binary {binary['binary']} does not exist") continue - for bin in src_path.glob(binary["binary"] + ".*[exe|dll|so|dylib]"): + + for bin in src_path.glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"): binaries.append((str(bin), binary["dst"])) for bin in src_path.glob(binary["binary"]): binaries.append((str(bin), binary["dst"])) - for _, dependency in self.dependencies.items(): + # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller + for _, dependency in self.dependencies.host.items(): for bin_paths in dependency.cpp_info.bindirs: - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dll")]) - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dylib")]) - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.so")]) + binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) + for lib_paths in dependency.cpp_info.libdirs: + binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*")]) # Copy dynamic libs from lib path - binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib")]) + binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib*")]) + binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.so*")]) # Collect all dll's from PyQt6 and place them in the root binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")])