From 0959e64d1133ee99e863c789a5cc15a43ea126d2 Mon Sep 17 00:00:00 2001 From: Florent Date: Tue, 26 Aug 2025 13:28:42 +0200 Subject: [PATCH] lib_build: add UI_FLAVOR and some cleanup --- build_as_lib.py | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/build_as_lib.py b/build_as_lib.py index 4e8eea57..d8e95378 100644 --- a/build_as_lib.py +++ b/build_as_lib.py @@ -15,28 +15,14 @@ src_filter = [ # add build and include dirs according to CPPDEFINES for item in menv.get("CPPDEFINES", []): - # STM32 - if isinstance(item, str) and item == "STM32_PLATFORM": - menv.Append(CPPPATH=[realpath("src/helpers/stm32")]) - menv.Append(BUILD_FLAGS=["-I src/helpers/stm32"]) + # PLATFORM HANDLING + if item == "STM32_PLATFORM": src_filter.append("+") - - # ESP32 - elif isinstance(item, str) and item == "ESP32": - menv.Append(CPPPATH=[realpath("src/helpers/esp32")]) - menv.Append(BUILD_FLAGS=["-I src/helpers/esp32"]) + elif item == "ESP32": src_filter.append("+") - - # NRF52 - elif isinstance(item, str) and item == "NRF52_PLATFORM": - menv.Append(CPPPATH=[realpath("src/helpers/nrf52")]) - menv.Append(BUILD_FLAGS=["-I src/helpers/nrf52"]) + elif item == "NRF52_PLATFORM": src_filter.append("+") - - # RP2040 - elif isinstance(item, str) and item == "RP2040_PLATFORM": - menv.Append(CPPPATH=[realpath("src/helpers/rp2040")]) - menv.Append(BUILD_FLAGS=["-I src/helpers/rp2040"]) + elif item == "RP2040_PLATFORM": src_filter.append("+") # DISPLAY HANDLING @@ -50,19 +36,29 @@ for item in menv.get("CPPDEFINES", []): # VARIANTS HANDLING elif isinstance(item, tuple) and item[0] == "MC_VARIANT": variant_name = item[1] - menv.Append(BUILD_FLAGS=[f"-I variants/{variant_name}"]) src_filter.append(f"+<../variants/{variant_name}>") # INCLUDE EXAMPLE CODE IN BUILD (to provide your own support files without touching the tree) elif isinstance(item, tuple) and item[0] == "BUILD_EXAMPLE": example_name = item[1] - src_filter.append(f"+<../examples/{example_name}>") + src_filter.append(f"+<../examples/{example_name}/*.cpp>") # EXCLUDE A SOURCE FILE FROM AN EXAMPLE (must be placed after example name or boom) elif isinstance(item, tuple) and item[0] == "EXCLUDE_FROM_EXAMPLE": exclude_name = item[1] + if example_name is None: + print("***** PLEASE DEFINE EXAMPLE FIRST *****") + break src_filter.append(f"-<../examples/{example_name}/{exclude_name}>") + # DEAL WITH UI VARIANT FOR AN EXAMPLE + elif isinstance(item, tuple) and item[0] == "MC_UI_FLAVOR": + ui_flavor = item[1] + if example_name is None: + print("***** PLEASE DEFINE EXAMPLE FIRST *****") + break + src_filter.append(f"+<../examples/{example_name}/{ui_flavor}/*.cpp>") + menv.Replace(SRC_FILTER=src_filter) #print (menv.Dump())