diff options
author | j.spijker@ultimaker.com <jelle spijker> | 2022-08-03 09:50:53 +0300 |
---|---|---|
committer | jspijker <j.spijker@ultimaker.com> | 2022-08-03 09:51:41 +0300 |
commit | cf548613ca733d410e61b545e1104e3c1ea58415 (patch) | |
tree | 04449e1845cd6b6d79172a66a8aa64dc28366b38 | |
parent | f95b22404ad6b6b56ea156433c0dca8b4b04d2f0 (diff) |
Add cura env to Run environments
Contributes to CURA-8831
-rw-r--r-- | conanfile.py | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/conanfile.py b/conanfile.py index a43cea1977..4c9111fb9a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -11,7 +11,7 @@ from jinja2 import Template from conans import tools from conan import ConanFile from conan.tools import files -from conan.tools.env import VirtualRunEnv +from conan.tools.env import VirtualRunEnv, Environment from conan.errors import ConanInvalidConfiguration required_conan_version = ">=1.47.0" @@ -57,6 +57,37 @@ class CuraConan(ConanFile): "revision": "auto" } + # TODO: Add unit tests (but they need a different jinja template + _pycharm_targets = [{ + "name": "cura", + "module_name": "Cura", + "script_name": "cura_app.py", + }, { + "name": "cura_external_engine", + "module_name": "Cura", + "script_name": "cura_app.py", + "parameters": "--external-backend" + } + ] + + # FIXME: These env vars should be defined in the runenv. + _cura_env = None + + @property + def _cura_run_env(self): + if self._cura_env: + return self._cura_env + + self._cura_env = Environment() + self._cura_env.define("QML2_IMPORT_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "qml"))) + self._cura_env.define("QT_PLUGIN_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "plugins"))) + + if self.settings.os == "Linux": + self._cura_env.define("QT_QPA_FONTDIR", "/usr/share/fonts") + self._cura_env.define("QT_QPA_PLATFORMTHEME", "xdgdesktopportal") + self._cura_env.define("QT_XKB_CONFIG_ROOT", "/usr/share/X11/xkb") + return self._cura_env + @property def _staging(self): return self.options.staging in ["True", 'true'] @@ -235,6 +266,10 @@ class CuraConan(ConanFile): self.cpp.package.resdirs = ["resources", "plugins", "packaging", "pip_requirements"] # pip_requirements should be the last item in the list def generate(self): + cura_run_envvars = self._cura_run_env.vars(self, scope = "run") + ext = ".ps1" if self.settings.os == "Windows" else ".sh" + cura_run_envvars.save_script(self.folders.generators.joinpath(f"cura_run_environment{ext}")) + vr = VirtualRunEnv(self) vr.generate() |