flipperzero-firmware/applications/extapps.scons

58 lines
1.2 KiB
Plaintext

Import("ENV")
from fbt.appmanifest import FlipperAppType
appenv = ENV.Clone(tools=["fbt_extapps"])
appenv.Replace(
LINKER_SCRIPT="application-ext",
STRIPFLAGS=[
"--strip-debug",
"--strip-unneeded",
"-d",
"-g",
"-S",
],
)
appenv.AppendUnique(
CCFLAGS=[
"-Os",
"-ggdb3",
"-mword-relocations",
"-mlong-calls",
"-fno-common",
"-nostdlib",
"-fvisibility=hidden",
],
LINKFLAGS=[
"-r",
"-s",
# "-Bsymbolic",
"-nostartfiles",
"-mlong-calls",
"-fno-common",
"-nostdlib",
"-Wl,--gc-sections",
"-Wl,--no-export-dynamic",
"-fvisibility=hidden",
"-Wl,-e${APP_ENTRY}",
],
)
extapps = []
for apptype in (FlipperAppType.PLUGIN, FlipperAppType.EXTERNAL):
for app in appenv["APPBUILD"].get_apps_of_type(apptype):
extapps.append(appenv.BuildAppElf(app))
# Ugly access to global option
if extra_app_list := GetOption("extra_ext_apps"):
for extra_app in extra_app_list.split(","):
extapps.append(appenv.BuildAppElf(appenv["APPMGR"].get(extra_app)))
Alias(appenv["FIRMWARE_BUILD_CFG"] + "_extapps", extapps)
Return("extapps")