summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data_smart.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
-rw-r--r--bitbake/lib/bb/data_smart.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index c91b51f686..941c158f7d 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -369,7 +369,9 @@ class DataSmart(MutableMapping):
369 self.inoverride = True 369 self.inoverride = True
370 # Can end up here recursively so setup dummy values 370 # Can end up here recursively so setup dummy values
371 self.overrides = [] 371 self.overrides = []
372 self.overridesset = set()
372 self.overrides = (self.getVar("OVERRIDES", True) or "").split(":") or [] 373 self.overrides = (self.getVar("OVERRIDES", True) or "").split(":") or []
374 self.overridesset = set(self.overrides)
373 self.inoverride = False 375 self.inoverride = False
374 self.expand_cache = {} 376 self.expand_cache = {}
375 377
@@ -450,10 +452,10 @@ class DataSmart(MutableMapping):
450 active = [] 452 active = []
451 self.need_overrides() 453 self.need_overrides()
452 for (r, o) in self.overridedata[var]: 454 for (r, o) in self.overridedata[var]:
453 if o in self.overrides: 455 if o in self.overridesset:
454 active.append(r) 456 active.append(r)
455 elif "_" in o: 457 elif "_" in o:
456 if set(o.split("_")).issubset(set(self.overrides)): 458 if set(o.split("_")).issubset(self.overridesset):
457 active.append(r) 459 active.append(r)
458 for a in active: 460 for a in active:
459 self.delVar(a) 461 self.delVar(a)
@@ -600,10 +602,12 @@ class DataSmart(MutableMapping):
600 self.need_overrides() 602 self.need_overrides()
601 for (r, o) in self.overridedata[var]: 603 for (r, o) in self.overridedata[var]:
602 # What about double overrides both with "_" in the name? 604 # What about double overrides both with "_" in the name?
603 if o in self.overrides: 605 if o in self.overridesset:
604 active[o] = r
605 elif set(o.split("_")).issubset(set(self.overrides)):
606 active[o] = r 606 active[o] = r
607 elif "_" in o:
608 if set(o.split("_")).issubset(self.overridesset):
609 active[o] = r
610
607 mod = True 611 mod = True
608 while mod: 612 while mod:
609 mod = False 613 mod = False