Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: config.py
- Revision:
- 10:2511036308b8
- Parent:
- 8:a8ac6ed29081
- Child:
- 13:ab47a20b66f0
--- a/config.py Tue Jun 07 11:35:02 2016 +0100
+++ b/config.py Tue Jun 14 11:25:13 2016 +0100
@@ -176,6 +176,7 @@
self.processed_configs = {}
self.target = target if isinstance(target, str) else target.name
self.target_labels = Target.get_target(self.target).get_labels()
+ self.target_instance = Target.get_target(self.target)
# Add one or more configuration files
def add_config_files(self, flist):
@@ -221,6 +222,27 @@
for label, overrides in data.get("target_overrides", {}).items():
# If the label is defined by the target or it has the special value "*", process the overrides
if (label == '*') or (label in self.target_labels):
+ # Parse out cumulative attributes
+ for attr in Target._Target__cumulative_attributes:
+ attrs = getattr(self.target_instance, attr)
+
+ if attr in overrides:
+ del attrs[:]
+ attrs.extend(overrides[attr])
+ del overrides[attr]
+
+ if attr+'_add' in overrides:
+ attrs.extend(overrides[attr+'_add'])
+ del overrides[attr+'_add']
+
+ if attr+'_remove' in overrides:
+ for a in overrides[attr+'_remove']:
+ attrs.remove(a)
+ del overrides[attr+'_remove']
+
+ setattr(self.target_instance, attr, attrs)
+
+ # Consider the others as overrides
for name, v in overrides.items():
# Get the full name of the parameter
full_name = ConfigParameter.get_full_name(name, unit_name, unit_kind, label)
