Make settings menus external -21.7kb DFU

This commit is contained in:
Willy-JL
2024-02-14 04:36:48 +00:00
parent 1b91ec95c3
commit acc352e61f
29 changed files with 99 additions and 22 deletions

View File

@@ -248,7 +248,6 @@ class AppBuildset:
FlipperAppType.APP,
FlipperAppType.DEBUG,
FlipperAppType.ARCHIVE,
FlipperAppType.SETTINGS,
FlipperAppType.STARTUP,
)
EXTERNAL_APP_TYPES_MAP = {
@@ -257,6 +256,7 @@ class AppBuildset:
FlipperAppType.PLUGIN: True,
FlipperAppType.DEBUG: True,
FlipperAppType.MENUEXTERNAL: False,
FlipperAppType.SETTINGS: False,
}
@classmethod

View File

@@ -23,20 +23,22 @@ class ApplicationsCGenerator:
FlipperAppType.SYSTEM: ("FlipperInternalApplication", "FLIPPER_SYSTEM_APPS"),
FlipperAppType.APP: ("FlipperInternalApplication", "FLIPPER_APPS"),
FlipperAppType.DEBUG: ("FlipperInternalApplication", "FLIPPER_DEBUG_APPS"),
FlipperAppType.SETTINGS: (
"FlipperInternalApplication",
"FLIPPER_SETTINGS_APPS",
),
FlipperAppType.STARTUP: (
"FlipperInternalOnStartHook",
"FLIPPER_ON_SYSTEM_START",
),
}
APP_EXTERNAL_TYPE = (
"FlipperExternalApplication",
"FLIPPER_EXTERNAL_APPS",
)
EXTERNAL_TYPE_MAP = {
FlipperAppType.MENUEXTERNAL: (
"FlipperExternalApplication",
"FLIPPER_EXTERNAL_APPS",
),
FlipperAppType.SETTINGS: (
"FlipperExternalApplication",
"FLIPPER_SETTINGS_APPS",
),
}
def __init__(self, buildset: AppBuildset, autorun_app: str = ""):
self.buildset = buildset
@@ -100,12 +102,15 @@ class ApplicationsCGenerator:
]
)
entry_type, entry_block = self.APP_EXTERNAL_TYPE
external_apps = self.buildset.get_apps_of_type(FlipperAppType.MENUEXTERNAL)
contents.append(f"const {entry_type} {entry_block}[] = {{")
contents.append(",\n".join(map(self.get_external_app_descr, external_apps)))
contents.append("};")
contents.append(f"const size_t {entry_block}_COUNT = COUNT_OF({entry_block});")
for apptype in self.EXTERNAL_TYPE_MAP:
entry_type, entry_block = self.EXTERNAL_TYPE_MAP[apptype]
external_apps = self.buildset.get_apps_of_type(apptype)
contents.append(f"const {entry_type} {entry_block}[] = {{")
contents.append(",\n".join(map(self.get_external_app_descr, external_apps)))
contents.append("};")
contents.append(
f"const size_t {entry_block}_COUNT = COUNT_OF({entry_block});"
)
return "\n".join(contents)

View File

@@ -488,6 +488,7 @@ def _gather_app_components(env, appname) -> AppDeploymentComponents:
if host_app.apptype in [
FlipperAppType.EXTERNAL,
FlipperAppType.MENUEXTERNAL,
FlipperAppType.SETTINGS,
]:
components.add_app(host_app)
else:

View File

@@ -232,6 +232,7 @@ apps_to_build_as_faps = [
FlipperAppType.PLUGIN,
FlipperAppType.EXTERNAL,
FlipperAppType.MENUEXTERNAL,
FlipperAppType.SETTINGS,
]
known_extapps = [