diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 18 |
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: |