My Marlin configs for Fabrikator Mini and CTC i3 Pro B
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

copy_marlin_variant_to_framework.py 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #
  2. # copy_marlin_variant_to_framework.py
  3. #
  4. import os,shutil
  5. from SCons.Script import DefaultEnvironment
  6. from platformio import util
  7. from platformio.package.meta import PackageSpec
  8. def copytree(src, dst, symlinks=False, ignore=None):
  9. for item in os.listdir(src):
  10. s = os.path.join(src, item)
  11. d = os.path.join(dst, item)
  12. if os.path.isdir(s):
  13. shutil.copytree(s, d, symlinks, ignore)
  14. else:
  15. shutil.copy2(s, d)
  16. env = DefaultEnvironment()
  17. platform = env.PioPlatform()
  18. board = env.BoardConfig()
  19. variant = board.get("build.variant")
  20. platform_packages = env.GetProjectOption('platform_packages')
  21. # if there's no framework defined, take it from the class name of platform
  22. framewords = {
  23. "Ststm32Platform": "framework-arduinoststm32",
  24. "AtmelavrPlatform": "framework-arduino-avr"
  25. }
  26. if len(platform_packages) == 0:
  27. platform_name = framewords[platform.__class__.__name__]
  28. else:
  29. platform_name = PackageSpec(platform_packages[0]).name
  30. FRAMEWORK_DIR = platform.get_package_dir(platform_name)
  31. assert os.path.isdir(FRAMEWORK_DIR)
  32. assert os.path.isdir("buildroot/share/PlatformIO/variants")
  33. variant_dir = os.path.join(FRAMEWORK_DIR, "variants", variant)
  34. source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant)
  35. assert os.path.isdir(source_dir)
  36. if os.path.isdir(variant_dir):
  37. shutil.rmtree(variant_dir)
  38. if not os.path.isdir(variant_dir):
  39. os.mkdir(variant_dir)
  40. copytree(source_dir, variant_dir)