diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-05 23:01:23 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-05 23:01:23 +0000 |
commit | 8d7d7fb4d0fcd4882d7240c56b7b9068bdca77cf (patch) | |
tree | eadefab0d6d50c1dc6174de330be579197d4279e | |
parent | d9754601470e94d4857e74bfdf08c295fa0c2440 (diff) | |
download | bitbake-8d7d7fb4d0fcd4882d7240c56b7b9068bdca77cf.tar.gz |
lib/bb/runqueue.py: Make sure intertask depends get processed correcting in recursive depends
-rw-r--r-- | lib/bb/runqueue.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index f64c115e7..fc0639282 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -110,6 +110,7 @@ class RunQueue: if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']: taskname = task_deps['deptask'][taskData.tasks_name[task]] for depid in taskData.depids[fnid]: + # Won't be in build_targets if ASSUME_PROVIDED if depid in taskData.build_targets: depdata = taskData.build_targets[depid][0] if depdata: @@ -130,6 +131,7 @@ class RunQueue: for idepend in idepends: depid = int(idepend.split(":")[0]) if depid in taskData.build_targets: + # Won't be in build_targets if ASSUME_PROVIDED depdata = taskData.build_targets[depid][0] if depdata: dep = taskData.fn_index[depdata] @@ -161,6 +163,11 @@ class RunQueue: for nextdepid in taskData.rdepids[fnid]: if nextdepid not in rdep_seen: add_recursive_run(nextdepid) + idepends = taskData.tasks_idepends[depid] + for idepend in idepends: + nextdepid = int(idepend.split(":")[0]) + if nextdepid not in dep_seen: + add_recursive_build(nextdepid) def add_recursive_run(rdepid): """ @@ -188,18 +195,27 @@ class RunQueue: for nextdepid in taskData.rdepids[fnid]: if nextdepid not in rdep_seen: add_recursive_run(nextdepid) + idepends = taskData.tasks_idepends[rdepid] + for idepend in idepends: + nextdepid = int(idepend.split(":")[0]) + if nextdepid not in dep_seen: + add_recursive_build(nextdepid) # Resolve Recursive Runtime Depends - # Also includes all Build Depends (and their runtime depends) + # Also includes all thier build depends, intertask depends and runtime depends if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']: for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split(): dep_seen = [] rdep_seen = [] + idep_seen = [] for depid in taskData.depids[fnid]: add_recursive_build(depid) for rdepid in taskData.rdepids[fnid]: add_recursive_run(rdepid) + for idepend in idepends: + depid = int(idepend.split(":")[0]) + add_recursive_build(depid) #Prune self references if task in depends: |