YREA-SLS/SLS_C/sls_build/build_targets/main.py

26 lines
919 B
Python

# build/build_targets/main.py
from .base import BuildTarget
from pathlib import Path
from ..utils import mkdir
class MainBuild(BuildTarget):
def sources(self):
return [s for s in self.config.SRC_DIR.glob("*.c") if s.name not in ["pico_main.c"]]
def output(self):
return self.config.TARGET
def build(self):
mkdir(self.config.OBJ_DIR)
compiler = self.platform.compiler()
objects = []
for s in self.sources():
obj = self.config.OBJ_DIR / (s.stem + ".o")
deps = self.config.OBJ_DIR / (s.stem + ".d")
flags = self.platform.cflags(test=False)
extra = [f'-DGIT_COMMIT_HASH="{self.utils.git_commit_hash()}"']
compiler.compile(s, obj, flags, extra_defines=extra, deps_out=deps)
objects.append(obj)
mkdir(self.config.BIN_DIR)
compiler.link(objects, self.output(), libs=["-lm"])