From 75466a53b6eece5173a9bfe483414148e4c06517 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Wed, 18 Sep 2013 13:15:48 +0100 Subject: bitbake: cooker,runqueue: send the task dependency tree Adding a CookerFeature that allows UIs to enable receving a dependency tree once the task data has been computed and the runQueue is ready to start. This will allow the clients to display dependency data in an efficient manner, and not recompute the runqueue specifically to get the dependency data. Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- lib/bb/cooker.py | 5 ++++- lib/bb/runqueue.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 8776e187e..dd45ae817 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -81,7 +81,7 @@ class SkippedPackage: class CookerFeatures(object): - _feature_list = [HOB_EXTRA_CACHES] = range(1) + _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE] = range(2) def __init__(self): self._features=set() @@ -457,7 +457,10 @@ class BBCooker: runlist, taskdata = self.prepareTreeData(pkgs_to_build, task) rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist) rq.rqdata.prepare() + return self.buildDependTree(rq, taskdata) + + def buildDependTree(self, rq, taskdata): seen_fnids = [] depend_tree = {} depend_tree["depends"] = {} diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 6346c7711..472509fa1 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -999,6 +999,11 @@ class RunQueue: else: self.state = runQueueSceneInit + # we are ready to run, see if any UI client needs the dependency info + if bb.cooker.CookerFeatures.SEND_DEPENDS_TREE in self.cooker.featureset: + depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData) + bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data) + if self.state is runQueueSceneInit: if self.cooker.configuration.dump_signatures: self.dump_signatures() -- cgit 1.2.3-korg