[FL-2733] multitarget support for fbt (#2209)
* First part of multitarget porting * Delete firmware/targets/f7/Inc directory * Delete firmware/targets/f7/Src directory * gpio: cli fixes; about: using version from HAL * sdk: path fixes * gui: include fixes * applications: more include fixes * gpio: ported to new apis * hal: introduced furi_hal_target_hw.h; libs: added one_wire * hal: f18 target * github: also build f18 by default * typo fix * fbt: removed extra checks on app list * api: explicitly bundling select mlib headers with sdk * hal: f18: changed INPUT_DEBOUNCE_TICKS to match f7 * cleaned up commented out code * docs: added info on hw targets * docs: targets: formatting fixes * f18: fixed link error * f18: fixed API version to match f7 * docs: hardware: minor wording fixes * faploader: added fw target check * docs: typo fixes * github: not building komi target by default * fbt: support for `targets` field for built-in apps * github: reworked build flow to exclude app_set; fbt: removed komi-specific appset; added additional target buildset check * github: fixed build; nfc: fixed pvs warnings * attempt to fix target id * f7, f18: removed certain HAL function from public API * apps: debug: enabled bt_debug_app for f18 * Targets: backport input pins configuration routine from F7 to F18 Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -16,6 +16,7 @@ env = ENV.Clone(
|
||||
"fwbin",
|
||||
"fbt_apps",
|
||||
"pvsstudio",
|
||||
"fbt_hwtarget",
|
||||
],
|
||||
COMPILATIONDB_USE_ABSPATH=False,
|
||||
BUILD_DIR=fw_build_meta["build_dir"],
|
||||
@@ -31,10 +32,6 @@ env = ENV.Clone(
|
||||
CPPPATH=[
|
||||
"#/furi",
|
||||
*(f"#/{app_dir[0]}" for app_dir in ENV["APPDIRS"] if app_dir[1]),
|
||||
"#/firmware/targets/f${TARGET_HW}/ble_glue",
|
||||
"#/firmware/targets/f${TARGET_HW}/fatfs",
|
||||
"#/firmware/targets/f${TARGET_HW}/furi_hal",
|
||||
"#/firmware/targets/f${TARGET_HW}/Inc",
|
||||
"#/firmware/targets/furi_hal_include",
|
||||
],
|
||||
# Specific flags for building libraries - always do optimized builds
|
||||
@@ -74,20 +71,6 @@ env = ENV.Clone(
|
||||
_APP_ICONS=None,
|
||||
)
|
||||
|
||||
|
||||
def ApplyLibFlags(env):
|
||||
flags_to_apply = env["FW_LIB_OPTS"].get(
|
||||
env.get("FW_LIB_NAME"),
|
||||
env["FW_LIB_OPTS"]["Default"],
|
||||
)
|
||||
# print("Flags for ", env.get("FW_LIB_NAME", "Default"), flags_to_apply)
|
||||
env.MergeFlags(flags_to_apply)
|
||||
|
||||
|
||||
env.AddMethod(ApplyLibFlags)
|
||||
|
||||
Export("env")
|
||||
|
||||
if env["IS_BASE_FIRMWARE"]:
|
||||
env.Append(
|
||||
FIRMWARE_BUILD_CFG="firmware",
|
||||
@@ -102,7 +85,11 @@ else:
|
||||
],
|
||||
)
|
||||
|
||||
# Invoke child SConscripts to populate global `env` + build their own part of the code
|
||||
env.ConfigureForTarget(env.subst("${TARGET_HW}"))
|
||||
|
||||
Export("env")
|
||||
|
||||
# Invoke child SCopscripts to populate global `env` + build their own part of the code
|
||||
lib_targets = env.BuildModules(
|
||||
[
|
||||
"lib",
|
||||
@@ -131,7 +118,7 @@ if extra_int_apps := GetOption("extra_int_apps"):
|
||||
fwenv.Append(APPS=extra_int_apps.split(","))
|
||||
|
||||
|
||||
for app_dir, _ in env["APPDIRS"]:
|
||||
for app_dir, _ in fwenv["APPDIRS"]:
|
||||
app_dir_node = env.Dir("#").Dir(app_dir)
|
||||
|
||||
for entry in app_dir_node.glob("*"):
|
||||
@@ -196,37 +183,11 @@ sources.extend(
|
||||
fwelf = fwenv["FW_ELF"] = fwenv.Program(
|
||||
"${FIRMWARE_BUILD_CFG}",
|
||||
sources,
|
||||
LIBS=[
|
||||
"print",
|
||||
"flipper${TARGET_HW}",
|
||||
"furi",
|
||||
"freertos",
|
||||
"stm32cubewb",
|
||||
"hwdrivers",
|
||||
"fatfs",
|
||||
"littlefs",
|
||||
"subghz",
|
||||
"flipperformat",
|
||||
"toolbox",
|
||||
"nfc",
|
||||
"microtar",
|
||||
"usb_stm32",
|
||||
"st25rfal002",
|
||||
"infrared",
|
||||
"appframe",
|
||||
"assets",
|
||||
"misc",
|
||||
"mbedtls",
|
||||
"lfrfid",
|
||||
"flipper_application",
|
||||
# 2nd round
|
||||
"flipperformat",
|
||||
"toolbox",
|
||||
],
|
||||
LIBS=fwenv["TARGET_CFG"].linker_dependencies,
|
||||
)
|
||||
|
||||
# Firmware depends on everything child builders returned
|
||||
Depends(fwelf, lib_targets)
|
||||
# Depends(fwelf, lib_targets)
|
||||
# Output extra details after building firmware
|
||||
AddPostAction(fwelf, fwenv["APPBUILD_DUMP"])
|
||||
AddPostAction(
|
||||
|
||||
Reference in New Issue
Block a user