YREA-SLS/SLS_C/sls_build/builder.py

38 lines
1.1 KiB
Python

# 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()