diff options
Diffstat (limited to 'bitbake')
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 56 |
1 files changed, 12 insertions, 44 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 9874f664b5..1b31cea880 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -327,9 +327,11 @@ class BBCooker: | |||
| 327 | 327 | ||
| 328 | return taskdata, rq | 328 | return taskdata, rq |
| 329 | 329 | ||
| 330 | def generateDepTreeData(self, pkgs_to_build, task): | 330 | def generateDepTreeData(self, pkgs_to_build, task, more_meta=False): |
| 331 | """ | 331 | """ |
| 332 | Create a dependency tree of pkgs_to_build, returning the data. | 332 | Create a dependency tree of pkgs_to_build, returning the data. |
| 333 | When more_meta is set to True include summary, license and group | ||
| 334 | information in the returned tree. | ||
| 333 | """ | 335 | """ |
| 334 | taskdata, rq = self.prepareTreeData(pkgs_to_build, task) | 336 | taskdata, rq = self.prepareTreeData(pkgs_to_build, task) |
| 335 | 337 | ||
| @@ -349,10 +351,18 @@ class BBCooker: | |||
| 349 | fn = taskdata.fn_index[fnid] | 351 | fn = taskdata.fn_index[fnid] |
| 350 | pn = self.status.pkg_fn[fn] | 352 | pn = self.status.pkg_fn[fn] |
| 351 | version = "%s:%s-%s" % self.status.pkg_pepvpr[fn] | 353 | version = "%s:%s-%s" % self.status.pkg_pepvpr[fn] |
| 354 | if more_meta: | ||
| 355 | summary = self.status.summary[fn] | ||
| 356 | lic = self.status.license[fn] | ||
| 357 | section = self.status.section[fn] | ||
| 352 | if pn not in depend_tree["pn"]: | 358 | if pn not in depend_tree["pn"]: |
| 353 | depend_tree["pn"][pn] = {} | 359 | depend_tree["pn"][pn] = {} |
| 354 | depend_tree["pn"][pn]["filename"] = fn | 360 | depend_tree["pn"][pn]["filename"] = fn |
| 355 | depend_tree["pn"][pn]["version"] = version | 361 | depend_tree["pn"][pn]["version"] = version |
| 362 | if more_meta: | ||
| 363 | depend_tree["pn"][pn]["summary"] = summary | ||
| 364 | depend_tree["pn"][pn]["license"] = lic | ||
| 365 | depend_tree["pn"][pn]["section"] = section | ||
| 356 | for dep in rq.rqdata.runq_depends[task]: | 366 | for dep in rq.rqdata.runq_depends[task]: |
| 357 | depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]] | 367 | depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]] |
| 358 | deppn = self.status.pkg_fn[depfn] | 368 | deppn = self.status.pkg_fn[depfn] |
| @@ -579,48 +589,6 @@ class BBCooker: | |||
| 579 | 589 | ||
| 580 | return pkg_list | 590 | return pkg_list |
| 581 | 591 | ||
| 582 | def generateTargetsTreeData(self, pkgs_to_build, task): | ||
| 583 | """ | ||
| 584 | Create a tree of pkgs_to_build metadata, returning the data. | ||
| 585 | """ | ||
| 586 | taskdata, rq = self.prepareTreeData(pkgs_to_build, task) | ||
| 587 | |||
| 588 | seen_fnids = [] | ||
| 589 | target_tree = {} | ||
| 590 | target_tree["depends"] = {} | ||
| 591 | target_tree["pn"] = {} | ||
| 592 | target_tree["rdepends-pn"] = {} | ||
| 593 | |||
| 594 | for task in xrange(len(rq.rqdata.runq_fnid)): | ||
| 595 | taskname = rq.rqdata.runq_task[task] | ||
| 596 | fnid = rq.rqdata.runq_fnid[task] | ||
| 597 | fn = taskdata.fn_index[fnid] | ||
| 598 | pn = self.status.pkg_fn[fn] | ||
| 599 | version = "%s:%s-%s" % self.status.pkg_pepvpr[fn] | ||
| 600 | summary = self.status.summary[fn] | ||
| 601 | license = self.status.license[fn] | ||
| 602 | section = self.status.section[fn] | ||
| 603 | if pn not in target_tree["pn"]: | ||
| 604 | target_tree["pn"][pn] = {} | ||
| 605 | target_tree["pn"][pn]["filename"] = fn | ||
| 606 | target_tree["pn"][pn]["version"] = version | ||
| 607 | target_tree["pn"][pn]["summary"] = summary | ||
| 608 | target_tree["pn"][pn]["license"] = license | ||
| 609 | target_tree["pn"][pn]["section"] = section | ||
| 610 | if fnid not in seen_fnids: | ||
| 611 | seen_fnids.append(fnid) | ||
| 612 | packages = [] | ||
| 613 | |||
| 614 | target_tree["depends"][pn] = [] | ||
| 615 | for dep in taskdata.depids[fnid]: | ||
| 616 | target_tree["depends"][pn].append(taskdata.build_names_index[dep]) | ||
| 617 | |||
| 618 | target_tree["rdepends-pn"][pn] = [] | ||
| 619 | for rdep in taskdata.rdepids[fnid]: | ||
| 620 | target_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep]) | ||
| 621 | |||
| 622 | return target_tree | ||
| 623 | |||
| 624 | def generateTargetsTree(self, klass=None, pkgs=[]): | 592 | def generateTargetsTree(self, klass=None, pkgs=[]): |
| 625 | """ | 593 | """ |
| 626 | Generate a dependency tree of buildable targets | 594 | Generate a dependency tree of buildable targets |
| @@ -636,7 +604,7 @@ class BBCooker: | |||
| 636 | pkgs = pkgs + extra_pkgs | 604 | pkgs = pkgs + extra_pkgs |
| 637 | 605 | ||
| 638 | # generate a dependency tree for all our packages | 606 | # generate a dependency tree for all our packages |
| 639 | tree = self.generateTargetsTreeData(pkgs, 'build') | 607 | tree = self.generateDepTreeData(pkgs, 'build', more_meta=True) |
| 640 | bb.event.fire(bb.event.TargetsTreeGenerated(tree), self.configuration.data) | 608 | bb.event.fire(bb.event.TargetsTreeGenerated(tree), self.configuration.data) |
| 641 | 609 | ||
| 642 | def buildWorldTargetList(self): | 610 | def buildWorldTargetList(self): |
