Cura/resources/conanfile.py
Jelle Spijker 3323d85ab0
Add paths to CURA_ENGINE_SEARCH_PATH in conanfile.py
Added new paths to CURA_ENGINE_SEARCH_PATH, specifically under "definitions" and "extruders". This ensures these directories are properly detected and searched in the Cura Engine.

Contribute to NP-186
2024-05-10 10:01:29 +02:00

69 lines
3.3 KiB
Python

import os
from conan import ConanFile
from conan.tools.files import copy, update_conandata
from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration
required_conan_version = ">=1.58.0 <2.0.0"
class CuraResource(ConanFile):
name = "cura_resources"
license = ""
author = "UltiMaker"
url = "https://github.com/Ultimaker/cura-private-data"
description = "Cura Resources"
topics = ("conan", "cura")
exports = "LICENSE*"
settings = "os", "compiler", "build_type", "arch"
no_copy_source = True
def set_version(self):
if not self.version:
self.version = self.conan_data["version"]
def export(self):
copy(self, pattern="conandata.yml", src=os.path.join(self.recipe_folder, ".."), dst=self.export_folder,
keep_path=False)
update_conandata(self, {"version": self.version})
def export_sources(self):
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "definitions"),
dst=os.path.join(self.export_sources_folder, "definitions"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "extruders"),
dst=os.path.join(self.export_sources_folder, "extruders"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "images"),
dst=os.path.join(self.export_sources_folder, "images"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "intent"),
dst=os.path.join(self.export_sources_folder, "intent"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "meshes"),
dst=os.path.join(self.export_sources_folder, "meshes"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "quality"),
dst=os.path.join(self.export_sources_folder, "quality"))
copy(self, pattern="*", src=os.path.join(self.recipe_folder, "variants"),
dst=os.path.join(self.export_sources_folder, "variants"))
def validate(self):
if Version(self.version) <= Version("4"):
raise ConanInvalidConfiguration("Only versions 5+ are support")
def layout(self):
self.cpp.source.resdirs = ["definitions", "extruders", "images", "intent", "meshes", "quality", "variants"]
self.cpp.package.resdirs = ["res/definitions", "res/extruders", "res/images", "res/intent", "res/meshes", "res/quality", "res/variants"]
def package(self):
copy(self, "*", os.path.join(self.export_sources_folder),
os.path.join(self.package_folder, "res"))
def package_info(self):
self.cpp_info.includedirs = []
self.runenv_info.append_path("CURA_RESOURCES", os.path.join(self.package_folder, "res"))
self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "definitions"))
self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "extruders"))
self.env_info.CURA_RESOURCES.append(os.path.join(self.package_folder, "res"))
self.env_info.CURA_ENGINE_SEARCH_PATH.append(os.path.join(self.package_folder, "res", "definitions"))
self.env_info.CURA_ENGINE_SEARCH_PATH.append(os.path.join(self.package_folder, "res", "definitions"))
def package_id(self):
self.info.clear()