fbt_extapps.py 897 B

123456789101112131415161718192021222324252627282930
  1. import os
  2. def BuildAppElf(env, app):
  3. work_dir = env.subst("$EXT_APPS_WORK_DIR")
  4. app_target_name = os.path.join(work_dir, app.appid)
  5. app_alias = f"{env['FIRMWARE_BUILD_CFG']}_{app.appid}"
  6. app_elf = env.Program(
  7. app_target_name,
  8. env.GlobRecursive("*.c*", os.path.join(work_dir, app._appdir)),
  9. APP_ENTRY=app.entry_point,
  10. )
  11. app_elf_dump = env.ObjDump(app_target_name)
  12. env.Alias(f"{app_alias}_list", app_elf_dump)
  13. app_stripped_elf = env.ELFStripper(
  14. os.path.join(env.subst("$PLUGIN_ELF_DIR"), app.appid), app_elf
  15. )
  16. env.Alias(app_alias, app_stripped_elf)
  17. return app_stripped_elf
  18. def generate(env, **kw):
  19. env.SetDefault(EXT_APPS_WORK_DIR=kw.get("EXT_APPS_WORK_DIR", ".extapps"))
  20. env.VariantDir(env.subst("$EXT_APPS_WORK_DIR"), ".", duplicate=False)
  21. env.AddMethod(BuildAppElf)
  22. def exists(env):
  23. return True