31 lines
897 B
Python
31 lines
897 B
Python
import os
|
|
|
|
|
|
def BuildAppElf(env, app):
|
|
work_dir = env.subst("$EXT_APPS_WORK_DIR")
|
|
app_target_name = os.path.join(work_dir, app.appid)
|
|
app_alias = f"{env['FIRMWARE_BUILD_CFG']}_{app.appid}"
|
|
app_elf = env.Program(
|
|
app_target_name,
|
|
env.GlobRecursive("*.c*", os.path.join(work_dir, app._appdir)),
|
|
APP_ENTRY=app.entry_point,
|
|
)
|
|
app_elf_dump = env.ObjDump(app_target_name)
|
|
env.Alias(f"{app_alias}_list", app_elf_dump)
|
|
|
|
app_stripped_elf = env.ELFStripper(
|
|
os.path.join(env.subst("$PLUGIN_ELF_DIR"), app.appid), app_elf
|
|
)
|
|
env.Alias(app_alias, app_stripped_elf)
|
|
return app_stripped_elf
|
|
|
|
|
|
def generate(env, **kw):
|
|
env.SetDefault(EXT_APPS_WORK_DIR=kw.get("EXT_APPS_WORK_DIR", ".extapps"))
|
|
env.VariantDir(env.subst("$EXT_APPS_WORK_DIR"), ".", duplicate=False)
|
|
env.AddMethod(BuildAppElf)
|
|
|
|
|
|
def exists(env):
|
|
return True
|