summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2013-09-18 13:15:48 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-22 12:19:43 +0100
commitf7621f47d8dc765a921587172e15ec6a3c88f56a (patch)
tree4d3752ef88a8e4b5a0e0b1829d7538140b9f1c94 /bitbake
parentba83eb315d1462e096e2d6682d246cbbe260b4c0 (diff)
downloadpoky-f7621f47d8dc765a921587172e15ec6a3c88f56a.tar.gz
bitbake: 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. (Bitbake rev: 75466a53b6eece5173a9bfe483414148e4c06517) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/cooker.py5
-rw-r--r--bitbake/lib/bb/runqueue.py5
2 files changed, 9 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 8776e187ea..dd45ae8173 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -81,7 +81,7 @@ class SkippedPackage:
81 81
82 82
83class CookerFeatures(object): 83class CookerFeatures(object):
84 _feature_list = [HOB_EXTRA_CACHES] = range(1) 84 _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE] = range(2)
85 85
86 def __init__(self): 86 def __init__(self):
87 self._features=set() 87 self._features=set()
@@ -457,7 +457,10 @@ class BBCooker:
457 runlist, taskdata = self.prepareTreeData(pkgs_to_build, task) 457 runlist, taskdata = self.prepareTreeData(pkgs_to_build, task)
458 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist) 458 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
459 rq.rqdata.prepare() 459 rq.rqdata.prepare()
460 return self.buildDependTree(rq, taskdata)
460 461
462
463 def buildDependTree(self, rq, taskdata):
461 seen_fnids = [] 464 seen_fnids = []
462 depend_tree = {} 465 depend_tree = {}
463 depend_tree["depends"] = {} 466 depend_tree["depends"] = {}
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6346c7711a..472509fa10 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -999,6 +999,11 @@ class RunQueue:
999 else: 999 else:
1000 self.state = runQueueSceneInit 1000 self.state = runQueueSceneInit
1001 1001
1002 # we are ready to run, see if any UI client needs the dependency info
1003 if bb.cooker.CookerFeatures.SEND_DEPENDS_TREE in self.cooker.featureset:
1004 depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
1005 bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
1006
1002 if self.state is runQueueSceneInit: 1007 if self.state is runQueueSceneInit:
1003 if self.cooker.configuration.dump_signatures: 1008 if self.cooker.configuration.dump_signatures:
1004 self.dump_signatures() 1009 self.dump_signatures()