Reuse conandata.yml from Cura

The changes mainly include improvements to the code layout and maintainability in conanfile.py script. With additional importations and enhancing the file copy operations, the process is made clearer and reusable. Meanwhile, conandata.yml has been removed for redundancy in favor of on-the-fly version data updates.

Contribute to NP-186
This commit is contained in:
Jelle Spijker 2024-05-06 08:23:38 +02:00
parent b12f7e0ff6
commit 26c4354ac2
No known key found for this signature in database
GPG key ID: 0E9129B3096F4E72
2 changed files with 21 additions and 9 deletions

View file

@ -1 +0,0 @@
version: "5.8.0-alpha.0"

View file

@ -1,4 +1,6 @@
import os
from pathlib import Path
from jinja2 import Template
from conan import ConanFile
from conan.tools.files import copy, update_conandata
@ -24,26 +26,37 @@ class CuraResource(ConanFile):
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, "*", os.path.join(self.recipe_folder, "definitions"), os.path.join(self.export_sources_folder, "resources", "definitions"))
copy(self, "*", os.path.join(self.recipe_folder, "extruders"), os.path.join(self.export_sources_folder, "resources", "extruders"))
copy(self, "*", os.path.join(self.recipe_folder, "intent"), os.path.join(self.export_sources_folder, "resources", "intent"))
copy(self, "*", os.path.join(self.recipe_folder, "meshes"), os.path.join(self.export_sources_folder, "resources", "meshes"))
copy(self, "*", os.path.join(self.recipe_folder, "quality"), os.path.join(self.export_sources_folder, "resources", "quality"))
copy(self, "*", os.path.join(self.recipe_folder, "variants"), os.path.join(self.export_sources_folder, "resources", "variants"))
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, "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", "intent", "meshes", "quality", "variants"]
def package(self):
copy(self, "*", os.path.join(self.export_sources_folder, "resources"), os.path.join(self.package_folder, "res", "resources"))
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.cpp_info.resdirs = ["res"]
def package_id(self):
self.info.clear()