diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2013-09-18 13:15:48 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-22 12:19:43 +0100 |
commit | f7621f47d8dc765a921587172e15ec6a3c88f56a (patch) | |
tree | 4d3752ef88a8e4b5a0e0b1829d7538140b9f1c94 /bitbake/lib | |
parent | ba83eb315d1462e096e2d6682d246cbbe260b4c0 (diff) | |
download | 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/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 5 | ||||
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 5 |
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 | ||
83 | class CookerFeatures(object): | 83 | class 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() |