conanfile.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. from conan import ConanFile
  3. from conan.tools.files import copy, update_conandata
  4. from conan.tools.scm import Version
  5. from conan.errors import ConanInvalidConfiguration
  6. required_conan_version = ">=1.58.0 <2.0.0"
  7. class CuraResource(ConanFile):
  8. name = "cura_resources"
  9. license = ""
  10. author = "UltiMaker"
  11. url = "https://github.com/Ultimaker/cura-private-data"
  12. description = "Cura Resources"
  13. topics = ("conan", "cura")
  14. exports = "LICENSE*"
  15. settings = "os", "compiler", "build_type", "arch"
  16. no_copy_source = True
  17. def set_version(self):
  18. if not self.version:
  19. self.version = self.conan_data["version"]
  20. def export(self):
  21. copy(self, pattern="conandata.yml", src=os.path.join(self.recipe_folder, ".."), dst=self.export_folder,
  22. keep_path=False)
  23. update_conandata(self, {"version": self.version})
  24. def export_sources(self):
  25. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "definitions"),
  26. dst=os.path.join(self.export_sources_folder, "definitions"))
  27. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "extruders"),
  28. dst=os.path.join(self.export_sources_folder, "extruders"))
  29. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "images"),
  30. dst=os.path.join(self.export_sources_folder, "images"))
  31. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "intent"),
  32. dst=os.path.join(self.export_sources_folder, "intent"))
  33. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "meshes"),
  34. dst=os.path.join(self.export_sources_folder, "meshes"))
  35. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "quality"),
  36. dst=os.path.join(self.export_sources_folder, "quality"))
  37. copy(self, pattern="*", src=os.path.join(self.recipe_folder, "variants"),
  38. dst=os.path.join(self.export_sources_folder, "variants"))
  39. def validate(self):
  40. if Version(self.version) <= Version("4"):
  41. raise ConanInvalidConfiguration("Only versions 5+ are support")
  42. def layout(self):
  43. self.cpp.source.resdirs = ["definitions", "extruders", "images", "intent", "meshes", "quality", "variants"]
  44. self.cpp.package.resdirs = ["res/definitions", "res/extruders", "res/images", "res/intent", "res/meshes", "res/quality", "res/variants"]
  45. def package(self):
  46. copy(self, "*", os.path.join(self.export_sources_folder),
  47. os.path.join(self.package_folder, "res"))
  48. def package_info(self):
  49. self.cpp_info.includedirs = []
  50. def package_id(self):
  51. self.info.clear()