My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

copy_marlin_variant_to_framework.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import os,shutil
  2. from SCons.Script import DefaultEnvironment
  3. from platformio import util
  4. def copytree(src, dst, symlinks=False, ignore=None):
  5. for item in os.listdir(src):
  6. s = os.path.join(src, item)
  7. d = os.path.join(dst, item)
  8. if os.path.isdir(s):
  9. shutil.copytree(s, d, symlinks, ignore)
  10. else:
  11. shutil.copy2(s, d)
  12. env = DefaultEnvironment()
  13. platform = env.PioPlatform()
  14. board = env.BoardConfig()
  15. variant = board.get("build.variant")
  16. variant_dir = ' +<buildroot/share/PlatformIO/variants/' + variant + '>';
  17. src_filter = env.get("SRC_FILTER")
  18. print("Starting SRC Filter:", env.get("SRC_FILTER"))
  19. src_filter_value = src_filter[0];
  20. src_filter_value = src_filter_value + variant_dir
  21. src_filter[0] = src_filter_value;
  22. env["SRC_FILTER"] = src_filter
  23. print("Modified SRC Filter:", env.get("SRC_FILTER"))
  24. cxx_flags = env['CXXFLAGS']
  25. print("CXXFLAGS", cxx_flags)
  26. FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32")
  27. assert os.path.isdir(FRAMEWORK_DIR)
  28. assert os.path.isdir("buildroot/share/PlatformIO/variants")
  29. variant_dir = os.path.join(FRAMEWORK_DIR, "variants", variant)
  30. source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant)
  31. assert os.path.isdir(source_dir)
  32. if os.path.isdir(variant_dir):
  33. shutil.rmtree(variant_dir)
  34. if not os.path.isdir(variant_dir):
  35. os.mkdir(variant_dir)
  36. copytree(source_dir, variant_dir)