Allow library configs to override target configs

pull/6697/head
Jimmy Brisson 2018-04-17 15:48:55 -05:00 committed by adbridge
parent 86d049d812
commit 751d38f0f6
1 changed files with 5 additions and 6 deletions

View File

@ -117,7 +117,7 @@ class ConfigParameter(object):
unit_name, unit_kind, label)))
prefix = temp[0]
# Check if the given parameter prefix matches the expected prefix
if (unit_kind == "library" and prefix != unit_name) or \
if (unit_kind == "library" and prefix not in [unit_name, "target"]) or \
(unit_kind == "target" and prefix != "target"):
raise ConfigException(
"Invalid prefix '%s' for parameter name '%s' in '%s'" %
@ -857,7 +857,7 @@ class Config(object):
params[full_name].set_value(val, tname, "target")
return params
def get_lib_config_data(self):
def get_lib_config_data(self, target_data):
""" Read and interpret configuration data defined by libraries. It is
assumed that "add_config_files" above was already called and the library
configuration data exists in self.lib_config_data
@ -866,7 +866,7 @@ class Config(object):
"""
all_params, macros = {}, {}
for lib_name, lib_data in self.lib_config_data.items():
all_params.update(self._process_config_and_overrides(lib_data, {},
all_params.update(self._process_config_and_overrides(lib_data, target_data,
lib_name,
"library"))
_process_macros(lib_data.get("macros", []), macros, lib_name,
@ -901,9 +901,8 @@ class Config(object):
Arguments: None
"""
all_params = self.get_target_config_data()
lib_params, macros = self.get_lib_config_data()
all_params.update(lib_params)
self.get_app_config_data(all_params, macros)
lib_params, macros = self.get_lib_config_data(all_params)
self.get_app_config_data(lib_params, macros)
return all_params, macros
@staticmethod