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>
This commit is contained in:
Alexandru DAMIAN 2013-09-18 13:15:48 +01:00 committed by Richard Purdie
parent ba83eb315d
commit f7621f47d8
2 changed files with 9 additions and 1 deletions

View File

@ -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"] = {}

View File

@ -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()