diff --git a/core/product_config.rbc b/core/product_config.rbc index b3156c6f39..b0d69770d0 100644 --- a/core/product_config.rbc +++ b/core/product_config.rbc @@ -860,6 +860,10 @@ def _clear_var_list(g, h, var_list): if v in cfg: cfg[v] = __zero_value(cfg[v]) + if v not in cfg and v not in g: + # Cause the variable to appear set like the make version does + g[v] = "" + def __get_options(): """Returns struct containing runtime global settings.""" diff --git a/tests/run.rbc b/tests/run.rbc index 06f56d324d..e8c4caae36 100644 --- a/tests/run.rbc +++ b/tests/run.rbc @@ -164,13 +164,14 @@ assert_eq({"A_LIST_VARIABLE": ["foo"]}, board_globals_base) g = {"FOO": "a", "BAR": "c", "BAZ": "e"} cfg = {"FOO": "b", "BAR": "d", "BAZ": "f"} -rblf.clear_var_list(g, struct(cfg=cfg), "FOO BAR") +rblf.clear_var_list(g, struct(cfg=cfg), "FOO BAR NEWVAR") assert_eq("", g["FOO"]) assert_eq("", cfg["FOO"]) assert_eq("", g["BAR"]) assert_eq("", cfg["BAR"]) assert_eq("e", g["BAZ"]) assert_eq("f", cfg["BAZ"]) +assert_eq("", g.get("NEWVAR")) test_single_value_inheritance() test_artifact_path_requirements()