summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/cooker.py56
1 files changed, 12 insertions, 44 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 9874f66..1b31cea 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):