diff options
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index ff16daf83f..e30fde0743 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -430,6 +430,31 @@ class BBCooker: | |||
| 430 | if not regex in matched: | 430 | if not regex in matched: |
| 431 | collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern)) | 431 | collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern)) |
| 432 | 432 | ||
| 433 | def checkInheritsClass(self, klass): | ||
| 434 | pkg_list = [] | ||
| 435 | for pfn in self.status.pkg_fn: | ||
| 436 | inherits = self.status.inherits.get(pfn, None) | ||
| 437 | if inherits and inherits.count(klass) > 0: | ||
| 438 | pkg_list.append(self.status.pkg_fn[pfn]) | ||
| 439 | |||
| 440 | return pkg_list | ||
| 441 | |||
| 442 | def generateTargetsTree(self, klass): | ||
| 443 | """ | ||
| 444 | Generate a dependency tree of buildable targets | ||
| 445 | Generate an event with the result | ||
| 446 | """ | ||
| 447 | pkgs = ['world'] | ||
| 448 | # if inherited_class passed ensure all recipes which inherit the | ||
| 449 | # specified class are included in pkgs | ||
| 450 | if klass: | ||
| 451 | extra_pkgs = self.checkInheritsClass(klass) | ||
| 452 | pkgs = pkgs + extra_pkgs | ||
| 453 | |||
| 454 | # generate a dependency tree for all our packages | ||
| 455 | tree = self.generateDepTreeData(pkgs, 'build') | ||
| 456 | bb.event.fire(bb.event.TargetsTreeGenerated(tree), self.configuration.data) | ||
| 457 | |||
| 433 | def buildWorldTargetList(self): | 458 | def buildWorldTargetList(self): |
| 434 | """ | 459 | """ |
| 435 | Build package list for "bitbake world" | 460 | Build package list for "bitbake world" |
