diff options
author | Richard Purdie <richard@openedhand.com> | 2007-08-05 22:43:24 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2007-08-05 22:43:24 +0000 |
commit | b5aa22b972e526b5fbb4f684d0d5821a4eefaefa (patch) | |
tree | f1261665b798fc33a42fb3fc5a351a2842fd6575 | |
parent | a354182576154cb8b638a1a37419829032bec51b (diff) | |
download | openembedded-core-b5aa22b972e526b5fbb4f684d0d5821a4eefaefa.tar.gz openembedded-core-b5aa22b972e526b5fbb4f684d0d5821a4eefaefa.tar.bz2 openembedded-core-b5aa22b972e526b5fbb4f684d0d5821a4eefaefa.zip |
bitbake lib/bb/runqueue.py: Make sure intertask depends get processed correctly in recursive depends
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2368 311d38ba-8fff-0310-9ca6-ca027cbcb966
-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: 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: |