summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/runqueue.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index f64c115e75..fc06392820 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -110,6 +110,7 @@ class RunQueue:
110 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']: 110 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']:
111 taskname = task_deps['deptask'][taskData.tasks_name[task]] 111 taskname = task_deps['deptask'][taskData.tasks_name[task]]
112 for depid in taskData.depids[fnid]: 112 for depid in taskData.depids[fnid]:
113 # Won't be in build_targets if ASSUME_PROVIDED
113 if depid in taskData.build_targets: 114 if depid in taskData.build_targets:
114 depdata = taskData.build_targets[depid][0] 115 depdata = taskData.build_targets[depid][0]
115 if depdata: 116 if depdata:
@@ -130,6 +131,7 @@ class RunQueue:
130 for idepend in idepends: 131 for idepend in idepends:
131 depid = int(idepend.split(":")[0]) 132 depid = int(idepend.split(":")[0])
132 if depid in taskData.build_targets: 133 if depid in taskData.build_targets:
134 # Won't be in build_targets if ASSUME_PROVIDED
133 depdata = taskData.build_targets[depid][0] 135 depdata = taskData.build_targets[depid][0]
134 if depdata: 136 if depdata:
135 dep = taskData.fn_index[depdata] 137 dep = taskData.fn_index[depdata]
@@ -161,6 +163,11 @@ class RunQueue:
161 for nextdepid in taskData.rdepids[fnid]: 163 for nextdepid in taskData.rdepids[fnid]:
162 if nextdepid not in rdep_seen: 164 if nextdepid not in rdep_seen:
163 add_recursive_run(nextdepid) 165 add_recursive_run(nextdepid)
166 idepends = taskData.tasks_idepends[depid]
167 for idepend in idepends:
168 nextdepid = int(idepend.split(":")[0])
169 if nextdepid not in dep_seen:
170 add_recursive_build(nextdepid)
164 171
165 def add_recursive_run(rdepid): 172 def add_recursive_run(rdepid):
166 """ 173 """
@@ -188,18 +195,27 @@ class RunQueue:
188 for nextdepid in taskData.rdepids[fnid]: 195 for nextdepid in taskData.rdepids[fnid]:
189 if nextdepid not in rdep_seen: 196 if nextdepid not in rdep_seen:
190 add_recursive_run(nextdepid) 197 add_recursive_run(nextdepid)
198 idepends = taskData.tasks_idepends[rdepid]
199 for idepend in idepends:
200 nextdepid = int(idepend.split(":")[0])
201 if nextdepid not in dep_seen:
202 add_recursive_build(nextdepid)
191 203
192 204
193 # Resolve Recursive Runtime Depends 205 # Resolve Recursive Runtime Depends
194 # Also includes all Build Depends (and their runtime depends) 206 # Also includes all thier build depends, intertask depends and runtime depends
195 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']: 207 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
196 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split(): 208 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split():
197 dep_seen = [] 209 dep_seen = []
198 rdep_seen = [] 210 rdep_seen = []
211 idep_seen = []
199 for depid in taskData.depids[fnid]: 212 for depid in taskData.depids[fnid]:
200 add_recursive_build(depid) 213 add_recursive_build(depid)
201 for rdepid in taskData.rdepids[fnid]: 214 for rdepid in taskData.rdepids[fnid]:
202 add_recursive_run(rdepid) 215 add_recursive_run(rdepid)
216 for idepend in idepends:
217 depid = int(idepend.split(":")[0])
218 add_recursive_build(depid)
203 219
204 #Prune self references 220 #Prune self references
205 if task in depends: 221 if task in depends: