diff options
-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): |