diff options
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 397352945e..0b52f182ea 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -405,6 +405,15 @@ class BBCooker: | |||
| 405 | print("}", file=tdepends_file) | 405 | print("}", file=tdepends_file) |
| 406 | logger.info("Task dependencies saved to 'task-depends.dot'") | 406 | logger.info("Task dependencies saved to 'task-depends.dot'") |
| 407 | 407 | ||
| 408 | def calc_bbfile_priority( self, filename, matched = None ): | ||
| 409 | for _, _, regex, pri in self.status.bbfile_config_priorities: | ||
| 410 | if regex.match(filename): | ||
| 411 | if matched != None: | ||
| 412 | if not regex in matched: | ||
| 413 | matched.add(regex) | ||
| 414 | return pri | ||
| 415 | return 0 | ||
| 416 | |||
| 408 | def buildDepgraph( self ): | 417 | def buildDepgraph( self ): |
| 409 | all_depends = self.status.all_depends | 418 | all_depends = self.status.all_depends |
| 410 | pn_provides = self.status.pn_provides | 419 | pn_provides = self.status.pn_provides |
| @@ -413,15 +422,6 @@ class BBCooker: | |||
| 413 | bb.data.update_data(localdata) | 422 | bb.data.update_data(localdata) |
| 414 | bb.data.expandKeys(localdata) | 423 | bb.data.expandKeys(localdata) |
| 415 | 424 | ||
| 416 | matched = set() | ||
| 417 | def calc_bbfile_priority(filename): | ||
| 418 | for _, _, regex, pri in self.status.bbfile_config_priorities: | ||
| 419 | if regex.match(filename): | ||
| 420 | if not regex in matched: | ||
| 421 | matched.add(regex) | ||
| 422 | return pri | ||
| 423 | return 0 | ||
| 424 | |||
| 425 | # Handle PREFERRED_PROVIDERS | 425 | # Handle PREFERRED_PROVIDERS |
| 426 | for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split(): | 426 | for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split(): |
| 427 | try: | 427 | try: |
| @@ -434,8 +434,9 @@ class BBCooker: | |||
| 434 | self.status.preferred[providee] = provider | 434 | self.status.preferred[providee] = provider |
| 435 | 435 | ||
| 436 | # Calculate priorities for each file | 436 | # Calculate priorities for each file |
| 437 | matched = set() | ||
| 437 | for p in self.status.pkg_fn: | 438 | for p in self.status.pkg_fn: |
| 438 | self.status.bbfile_priority[p] = calc_bbfile_priority(p) | 439 | self.status.bbfile_priority[p] = self.calc_bbfile_priority(p, matched) |
| 439 | 440 | ||
| 440 | # Don't show the warning if the BBFILE_PATTERN did match .bbappend files | 441 | # Don't show the warning if the BBFILE_PATTERN did match .bbappend files |
| 441 | unmatched = set() | 442 | unmatched = set() |
| @@ -950,6 +951,9 @@ class BBCooker: | |||
| 950 | files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split() | 951 | files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split() |
| 951 | data.setVar("BBFILES", " ".join(files), self.configuration.data) | 952 | data.setVar("BBFILES", " ".join(files), self.configuration.data) |
| 952 | 953 | ||
| 954 | # Sort files by priority | ||
| 955 | files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) ) | ||
| 956 | |||
| 953 | if not len(files): | 957 | if not len(files): |
| 954 | files = self.get_bbfiles() | 958 | files = self.get_bbfiles() |
| 955 | 959 | ||
