38 lines
1.1 KiB
Python
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()
|