12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #
- # STM32F1_create_variant.py
- #
- import pioutil
- if pioutil.is_pio_build():
- from pathlib import Path
- source_root_str = "buildroot/share/PlatformIO/variants"
- source_root = Path(source_root_str)
- assert source_root.is_dir()
- env = pioutil.env
- board = env.BoardConfig()
- variant = board.get("build.variant")
- source_dir = source_root / variant
- assert source_dir.is_dir()
- if True:
- # Copying to the platform folder is still needed by STM32F1 (Maple).
- # The alternative code below comes close. See if you can solve it!
- platform = env.PioPlatform()
- FRAMEWORK_DIR = Path(platform.get_package_dir("framework-arduinoststm32-maple"))
- assert FRAMEWORK_DIR.is_dir()
- variant_dir = FRAMEWORK_DIR / "STM32F1/variants" / variant
- if variant_dir.is_dir():
- import shutil
- shutil.rmtree(variant_dir)
- if not variant_dir.is_dir():
- variant_dir.mkdir()
- import marlin
- marlin.copytree(source_dir, variant_dir)
- else:
- # The following almost works, but __start__ (from wirish/start.S) is not seen by common.inc
- board.update("build.variants_dir", source_root_str);
- src = str(source_dir)
- env.Append(BUILD_FLAGS=[f"-I{src}", f"-L{src}/ld"]) # Add include path for variant
|