@@ -112,6 +112,21 @@ def getconfiglist(name, config, target, stepnum):
ret.extend(config['defaults'][name])
return expandresult(ret, config)
+# Get a build configuration dict, merging defaults < target < step so that
+# more-specific entries win (step-level keys override target-level, which
+# override defaults).
+def getconfigdict(name, config, target, stepnum):
+ ret = {}
+ step = "step" + str(stepnum)
+ if name in config['defaults']:
+ ret.update(config['defaults'][name])
+ if target in config['overrides']:
+ if name in config['overrides'][target]:
+ ret.update(config['overrides'][target][name])
+ if step in config['overrides'][target] and name in config['overrides'][target][step]:
+ ret.update(config['overrides'][target][step][name])
+ return expandresult(ret, config)
+
# Return only unique configuration values (identified with '=' in them)
def getconfiglistfilter(name, config, target, stepnum):
def merge(main, newvals):