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: 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 6346c7711a..472509fa10 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()