|
5 | 5 | # the appropriate framework variants folder, so that its contents
|
6 | 6 | # will be picked up by PlatformIO just like any other variant.
|
7 | 7 | #
|
8 |
| -import pioutil |
| 8 | +import pioutil, re |
| 9 | +marlin_variant_pattern = re.compile("marlin_.*") |
9 | 10 | if pioutil.is_pio_build():
|
10 | 11 | import shutil,marlin
|
11 | 12 | from pathlib import Path
|
|
32 | 33 | else:
|
33 | 34 | platform_name = PackageSpec(platform_packages[0]).name
|
34 | 35 |
|
35 |
| - if platform_name in [ "usb-host-msc", "usb-host-msc-cdc-msc", "usb-host-msc-cdc-msc-2", "usb-host-msc-cdc-msc-3", "tool-stm32duino", "biqu-bx-workaround", "main" ]: |
| 36 | + if platform_name in [ "Arduino_Core_STM32", "usb-host-msc", "usb-host-msc-cdc-msc", "usb-host-msc-cdc-msc-2", "usb-host-msc-cdc-msc-3", "tool-stm32duino", "biqu-bx-workaround", "main" ]: |
36 | 37 | platform_name = "framework-arduinoststm32"
|
37 | 38 |
|
38 | 39 | FRAMEWORK_DIR = Path(platform.get_package_dir(platform_name))
|
|
44 | 45 | variant = board.get("build.variant")
|
45 | 46 | #series = mcu_type[:7].upper() + "xx"
|
46 | 47 |
|
47 |
| - # Prepare a new empty folder at the destination |
48 |
| - variant_dir = FRAMEWORK_DIR / "variants" / variant |
49 |
| - if variant_dir.is_dir(): |
50 |
| - shutil.rmtree(variant_dir) |
51 |
| - if not variant_dir.is_dir(): |
52 |
| - variant_dir.mkdir() |
| 48 | + # Only prepare a new variant if the PlatformIO configuration provides it (board_build.variant). |
| 49 | + # This check is important to avoid deleting official board config variants. |
| 50 | + if marlin_variant_pattern.match(str(variant).lower()): |
| 51 | + # Prepare a new empty folder at the destination |
| 52 | + variant_dir = FRAMEWORK_DIR / "variants" / variant |
| 53 | + if variant_dir.is_dir(): |
| 54 | + shutil.rmtree(variant_dir) |
| 55 | + if not variant_dir.is_dir(): |
| 56 | + variant_dir.mkdir() |
53 | 57 |
|
54 |
| - # Source dir is a local variant sub-folder |
55 |
| - source_dir = Path("buildroot/share/PlatformIO/variants", variant) |
56 |
| - assert source_dir.is_dir() |
| 58 | + # Source dir is a local variant sub-folder |
| 59 | + source_dir = Path("buildroot/share/PlatformIO/variants", variant) |
| 60 | + assert source_dir.is_dir() |
57 | 61 |
|
58 |
| - marlin.copytree(source_dir, variant_dir) |
| 62 | + print("Copying variant " + str(variant) + " to framework directory...") |
| 63 | + |
| 64 | + marlin.copytree(source_dir, variant_dir) |
0 commit comments