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)
downloadast2050-yocto-poky-f7621f47d8dc765a921587172e15ec6a3c88f56a.zip
ast2050-yocto-poky-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 8776e187..dd45ae8 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/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/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6346c77..472509f 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/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()
OpenPOWER on IntegriCloud