26 lines
919 B
Python
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"])
|