# build/builder.py from .platform import linux as linux_mod, macos as macos_mod, windows as windows_mod, rp2040 as rp_mod from .build_targets.main import MainBuild from .build_targets.tests import TestBuild from .build_targets.rp2040 import RP2040Build from . import config, utils PLATFORM_MAP = { "linux": linux_mod.LinuxPlatform, "macos": macos_mod.MacOSPlatform, "windows": windows_mod.WindowsPlatform, "rp2040": rp_mod.RP2040Platform, } def get_platform(name: str | None = None): name = name or utils.detect_platform_name() cls = PLATFORM_MAP.get(name, linux_mod.LinuxPlatform) return cls() def build_main(platform_name: str | None = None): plat = get_platform(platform_name) target = MainBuild(plat, config, utils) target.build() def build_tests(platform_name: str | None = None): plat = get_platform(platform_name) target = TestBuild(plat, config, utils) target.build() def build_rp2040(platform_name: str | None = None): plat = get_platform(platform_name or "rp2040") target = RP2040Build(plat, config, utils) target.build()