aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bb/runqueue.py8
-rw-r--r--lib/bb/taskdata.py10
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index d7033a3ef..58f067942 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -417,8 +417,12 @@ class RunQueue:
return []
if task in recursive_tdepends:
return recursive_tdepends[task]
- rectdepends = [task]
- nextdeps = [task]
+
+ fnid = taskData.tasks_fnid[task]
+ taskids = taskData.gettask_ids(fnid)
+
+ rectdepends = taskids
+ nextdeps = taskids
while len(nextdeps) != 0:
newdeps = []
for nextdep in nextdeps:
diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py
index 0fb34ad74..566614ee6 100644
--- a/lib/bb/taskdata.py
+++ b/lib/bb/taskdata.py
@@ -91,6 +91,16 @@ class TaskData:
return self.fn_index.index(name)
+ def gettask_ids(self, fnid):
+ """
+ Return an array of the ID numbers matching a given fnid.
+ """
+ ids = []
+ if fnid in self.tasks_lookup:
+ for task in self.tasks_lookup[fnid]:
+ ids.append(self.tasks_lookup[fnid][task])
+ return ids
+
def gettask_id(self, fn, task, create = True):
"""
Return an ID number for the task matching fn and task.