diff options
| -rw-r--r-- | bitbake/lib/bb/data_smart.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 4ccbedbfab..c800a9a106 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
| @@ -311,8 +311,7 @@ class DataSmart(MutableMapping): | |||
| 311 | 311 | ||
| 312 | # cookie monster tribute | 312 | # cookie monster tribute |
| 313 | self.overridedata = {} | 313 | self.overridedata = {} |
| 314 | 314 | self.overrides = None | |
| 315 | self.overrides = [] | ||
| 316 | self.overridevars = set(["OVERRIDES", "FILE"]) | 315 | self.overridevars = set(["OVERRIDES", "FILE"]) |
| 317 | 316 | ||
| 318 | def enableTracking(self): | 317 | def enableTracking(self): |
| @@ -360,8 +359,13 @@ class DataSmart(MutableMapping): | |||
| 360 | 359 | ||
| 361 | def internal_finalize(self, parent = False): | 360 | def internal_finalize(self, parent = False): |
| 362 | """Performs final steps upon the datastore, including application of overrides""" | 361 | """Performs final steps upon the datastore, including application of overrides""" |
| 362 | self.overrides = None | ||
| 363 | 363 | ||
| 364 | self.overrides = (self.getVar("OVERRIDES", True) or "").split(":") or [] | 364 | def need_overrides(self): |
| 365 | if self.overrides is None: | ||
| 366 | self.overrides = [] | ||
| 367 | self.overrides = (self.getVar("OVERRIDES", True) or "").split(":") or [] | ||
| 368 | self.expand_cache = {} | ||
| 365 | 369 | ||
| 366 | def initVar(self, var): | 370 | def initVar(self, var): |
| 367 | self.expand_cache = {} | 371 | self.expand_cache = {} |
| @@ -587,6 +591,7 @@ class DataSmart(MutableMapping): | |||
| 587 | if flag == "_content" and var in self.overridedata and not parsing: | 591 | if flag == "_content" and var in self.overridedata and not parsing: |
| 588 | match = False | 592 | match = False |
| 589 | active = {} | 593 | active = {} |
| 594 | self.need_overrides() | ||
| 590 | for (r, o) in self.overridedata[var]: | 595 | for (r, o) in self.overridedata[var]: |
| 591 | # What about double overrides both with "_" in the name? | 596 | # What about double overrides both with "_" in the name? |
| 592 | if o in self.overrides: | 597 | if o in self.overrides: |
| @@ -619,6 +624,7 @@ class DataSmart(MutableMapping): | |||
| 619 | if flag == "_content" and local_var is not None and "_append" in local_var and not parsing: | 624 | if flag == "_content" and local_var is not None and "_append" in local_var and not parsing: |
| 620 | if not value: | 625 | if not value: |
| 621 | value = "" | 626 | value = "" |
| 627 | self.need_overrides() | ||
| 622 | for (r, o) in local_var["_append"]: | 628 | for (r, o) in local_var["_append"]: |
| 623 | match = True | 629 | match = True |
| 624 | if o: | 630 | if o: |
| @@ -631,6 +637,7 @@ class DataSmart(MutableMapping): | |||
| 631 | if flag == "_content" and local_var is not None and "_prepend" in local_var and not parsing: | 637 | if flag == "_content" and local_var is not None and "_prepend" in local_var and not parsing: |
| 632 | if not value: | 638 | if not value: |
| 633 | value = "" | 639 | value = "" |
| 640 | self.need_overrides() | ||
| 634 | for (r, o) in local_var["_prepend"]: | 641 | for (r, o) in local_var["_prepend"]: |
| 635 | 642 | ||
| 636 | match = True | 643 | match = True |
| @@ -652,6 +659,7 @@ class DataSmart(MutableMapping): | |||
| 652 | 659 | ||
| 653 | if value and flag == "_content" and local_var is not None and "_remove" in local_var: | 660 | if value and flag == "_content" and local_var is not None and "_remove" in local_var: |
| 654 | removes = [] | 661 | removes = [] |
| 662 | self.need_overrides() | ||
| 655 | for (r, o) in local_var["_remove"]: | 663 | for (r, o) in local_var["_remove"]: |
| 656 | match = True | 664 | match = True |
| 657 | if o: | 665 | if o: |
| @@ -762,7 +770,7 @@ class DataSmart(MutableMapping): | |||
| 762 | 770 | ||
| 763 | data._tracking = self._tracking | 771 | data._tracking = self._tracking |
| 764 | 772 | ||
| 765 | data.overrides = copy.copy(self.overrides) | 773 | data.overrides = None |
| 766 | data.overridevars = copy.copy(self.overridevars) | 774 | data.overridevars = copy.copy(self.overridevars) |
| 767 | data.overridedata = copy.copy(self.overridedata) | 775 | data.overridedata = copy.copy(self.overridedata) |
| 768 | 776 | ||
