[FL-2859,2838] fbt: improvements for FAPs (#1813)

* fbt: assets builder for apps WIP
* fbt: automatically building private fap assets
* docs: details on how to use image assets
* fbt: renamed fap_assets -> fap_icons
* fbt: support for fap_extbuild field
* docs: info on fap_extbuild
* fbt: added --proxy-env parame ter
* fbt: made firmware_cdb & updater_cdb targets always available
* fbt: renamed fap_icons -> fap_icon_assets
* fbt: deprecated firmware_* target names for faps; new alias is "fap_APPID"
* fbt: changed intermediate file locations for external apps
* fbt: support for fap_private_libs; docs: updates
* restored mbedtls as global lib
* scripts: lint.py: skip "lib" subfolder
* fbt: Sanity checks for building advanced faps as part of fw
* docs: info on fap_private_libs; fbt: optimized *.fam indexing
* fbt: cleanup; samples: added sample_icons app
* fbt: moved example app to applications/examples
* linter fix
* docs: readme fixes
* added applications/examples/application.fam stub
* docs: more info on private libs

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
hedger
2022-10-06 17:55:57 +04:00
committed by GitHub
parent a69e150e2f
commit 9bf11d9fd2
27 changed files with 438 additions and 81 deletions

View File

@@ -9,28 +9,13 @@ assetsenv = env.Clone(
)
assetsenv.ApplyLibFlags()
if not assetsenv["VERBOSE"]:
assetsenv.SetDefault(
ICONSCOMSTR="\tICONS\t${TARGET}",
PROTOCOMSTR="\tPROTO\t${SOURCE}",
DOLPHINCOMSTR="\tDOLPHIN\t${DOLPHIN_RES_TYPE}",
RESMANIFESTCOMSTR="\tMANIFEST\t${TARGET}",
PBVERCOMSTR="\tPBVER\t${TARGET}",
)
# Gathering icons sources
icons_src = assetsenv.GlobRecursive("*.png", "icons")
icons_src += assetsenv.GlobRecursive("frame_rate", "icons")
icons = assetsenv.IconBuilder(
assetsenv.Dir("compiled"), ICON_SRC_DIR=assetsenv.Dir("#/assets/icons")
icons = assetsenv.CompileIcons(
assetsenv.Dir("compiled"), assetsenv.Dir("#/assets/icons")
)
assetsenv.Depends(icons, icons_src)
assetsenv.Alias("icons", icons)
# Protobuf .proto -> .c + .h
proto_src = assetsenv.Glob("protobuf/*.proto", source=True)
proto_options = assetsenv.Glob("protobuf/*.options", source=True)
proto = assetsenv.ProtoBuilder(assetsenv.Dir("compiled"), proto_src)