From b5aa22b972e526b5fbb4f684d0d5821a4eefaefa Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 5 Aug 2007 22:43:24 +0000 Subject: 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 --- bitbake/lib/bb/runqueue.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'bitbake') 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: -- cgit v1.2.3