From 1ccd0db9b017004ec2ed1f1542582099a8a7cf81 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Fri, 23 Oct 2026 09:43:13 -0700 Subject: [PATCH] Register the RAK help source before late Full profile flags --- scripts/nrf52_flash_trim.py | 6 +++--- test/test_companion_help_build_policy.py | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/nrf52_flash_trim.py b/scripts/nrf52_flash_trim.py index 07d35f06a..a22caf16e 100644 --- a/scripts/nrf52_flash_trim.py +++ b/scripts/nrf52_flash_trim.py @@ -191,9 +191,9 @@ def packed_help_policy(platform, mcu, src_filter, flags=(), cppdefines=()): if any(source_selected(src_filter, source) for source in ROLE_SOURCES): return False values = flag_defines(flags, cppdefines) - # Match the C++ #if defined gate, including an explicit =0 definition. - return all(values.get(name) is not None for name in - ("RAK_4631", "COMPANION_RADIO_FULL")) + # Full Companion can arrive later through PLATFORMIO_BUILD_FLAGS. Register + # the exact source early; its C++ gate leaves non-Full RAK builds empty. + return values.get("RAK_4631") is not None def compile_packed_help(build_env, node): diff --git a/test/test_companion_help_build_policy.py b/test/test_companion_help_build_policy.py index 1f87f18fa..407b223c5 100644 --- a/test/test_companion_help_build_policy.py +++ b/test/test_companion_help_build_policy.py @@ -6,10 +6,12 @@ import unittest ROOT=Path(__file__).resolve().parents[1] spec=importlib.util.spec_from_file_location('help_language_policy',ROOT/'scripts/nrf52_flash_trim.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m) class HelpBuildPolicy(unittest.TestCase): - def test_only_actual_rak_full_companion_profile_selects_cpp17_helper(self): + def test_rak_companion_source_registers_before_late_full_profile_flags(self): yes=dict(platform='nordicnrf52',mcu='nrf52840',src_filter='+<*> +<../examples/companion_radio>',flags='-DRAK_4631 -DCOMPANION_RADIO_FULL') self.assertTrue(m.packed_help_policy(**yes)) - for key,value in [('platform','espressif32'),('mcu','nrf52832'),('src_filter','+<*>'),('src_filter','+<../examples/companion_radio> +<../examples/simple_repeater>'),('flags','-DRAK_4631'),('flags','-DCOMPANION_RADIO_FULL'),('flags','-DRAK_4631 -DCOMPANION_RADIO_FULL -UCOMPANION_RADIO_FULL')]: + for flags in ('-DRAK_4631', '-DRAK_4631 -DCOMPANION_RADIO_FULL -UCOMPANION_RADIO_FULL'): + self.assertTrue(m.packed_help_policy(**dict(yes,flags=flags))) + for key,value in [('platform','espressif32'),('mcu','nrf52832'),('src_filter','+<*>'),('src_filter','+<../examples/companion_radio> +<../examples/simple_repeater>'),('flags','-DCOMPANION_RADIO_FULL'),('flags','-DRAK_4631 -URAK_4631')]: with self.subTest(key=key,value=value): no=dict(yes);no[key]=value;self.assertFalse(m.packed_help_policy(**no)) self.assertTrue(m.packed_help_policy('nordicnrf52','nrf52840','+<../examples/companion_radio>',cppdefines=[('RAK_4631',1),('COMPANION_RADIO_FULL',1)]))