diff options
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
| -rw-r--r-- | bitbake/lib/bb/data_smart.py | 14 |
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 |
