summaryrefslogtreecommitdiffstats
path: root/bitbake-dev/lib/bb/runqueue.py
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2009-07-21 22:39:58 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2009-07-21 22:39:58 +0100
commit94fe172d52286927638f7466b89f4eef4036e06b (patch)
tree23c188847c41e9ebfc2a66e9045b9ae6b82dae92 /bitbake-dev/lib/bb/runqueue.py
parentfa5d458526716a047a70dc89dbce7bea2c8179bb (diff)
downloadpoky-94fe172d52286927638f7466b89f4eef4036e06b.tar.gz
bitbake-dev: Catch up with bitbake changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake-dev/lib/bb/runqueue.py')
-rw-r--r--bitbake-dev/lib/bb/runqueue.py72
1 files changed, 37 insertions, 35 deletions
diff --git a/bitbake-dev/lib/bb/runqueue.py b/bitbake-dev/lib/bb/runqueue.py
index 1be2aa0db2..734f07d4cf 100644
--- a/bitbake-dev/lib/bb/runqueue.py
+++ b/bitbake-dev/lib/bb/runqueue.py
@@ -364,6 +364,33 @@ class RunQueue:
364 # process is repeated for each type of dependency (tdepends, deptask, 364 # process is repeated for each type of dependency (tdepends, deptask,
365 # rdeptast, recrdeptask, idepends). 365 # rdeptast, recrdeptask, idepends).
366 366
367 def add_build_dependencies(depids, tasknames, depends):
368 for depid in depids:
369 # Won't be in build_targets if ASSUME_PROVIDED
370 if depid not in taskData.build_targets:
371 continue
372 depdata = taskData.build_targets[depid][0]
373 if depdata is None:
374 continue
375 dep = taskData.fn_index[depdata]
376 for taskname in tasknames:
377 taskid = taskData.gettask_id(dep, taskname, False)
378 if taskid is not None:
379 depends.append(taskid)
380
381 def add_runtime_dependencies(depids, tasknames, depends):
382 for depid in depids:
383 if depid not in taskData.run_targets:
384 continue
385 depdata = taskData.run_targets[depid][0]
386 if depdata is None:
387 continue
388 dep = taskData.fn_index[depdata]
389 for taskname in tasknames:
390 taskid = taskData.gettask_id(dep, taskname, False)
391 if taskid is not None:
392 depends.append(taskid)
393
367 for task in range(len(taskData.tasks_name)): 394 for task in range(len(taskData.tasks_name)):
368 depends = [] 395 depends = []
369 recrdepends = [] 396 recrdepends = []
@@ -386,14 +413,7 @@ class RunQueue:
386 # (makes sure sometask runs after someothertask of all DEPENDS) 413 # (makes sure sometask runs after someothertask of all DEPENDS)
387 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']: 414 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']:
388 tasknames = task_deps['deptask'][taskData.tasks_name[task]].split() 415 tasknames = task_deps['deptask'][taskData.tasks_name[task]].split()
389 for depid in taskData.depids[fnid]: 416 add_build_dependencies(taskData.depids[fnid], tasknames, depends)
390 # Won't be in build_targets if ASSUME_PROVIDED
391 if depid in taskData.build_targets:
392 depdata = taskData.build_targets[depid][0]
393 if depdata is not None:
394 dep = taskData.fn_index[depdata]
395 for taskname in tasknames:
396 depends.append(taskData.gettask_id(dep, taskname))
397 417
398 # Resolve 'rdeptask' dependencies 418 # Resolve 'rdeptask' dependencies
399 # 419 #
@@ -401,12 +421,7 @@ class RunQueue:
401 # (makes sure sometask runs after someothertask of all RDEPENDS) 421 # (makes sure sometask runs after someothertask of all RDEPENDS)
402 if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']: 422 if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']:
403 taskname = task_deps['rdeptask'][taskData.tasks_name[task]] 423 taskname = task_deps['rdeptask'][taskData.tasks_name[task]]
404 for depid in taskData.rdepids[fnid]: 424 add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
405 if depid in taskData.run_targets:
406 depdata = taskData.run_targets[depid][0]
407 if depdata is not None:
408 dep = taskData.fn_index[depdata]
409 depends.append(taskData.gettask_id(dep, taskname))
410 425
411 # Resolve inter-task dependencies 426 # Resolve inter-task dependencies
412 # 427 #
@@ -435,23 +450,8 @@ class RunQueue:
435 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']: 450 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
436 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split(): 451 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split():
437 recrdepends.append(taskname) 452 recrdepends.append(taskname)
438 for depid in taskData.rdepids[fnid]: 453 add_build_dependencies(taskData.depids[fnid], [taskname], depends)
439 if depid in taskData.run_targets: 454 add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
440 depdata = taskData.run_targets[depid][0]
441 if depdata is not None:
442 dep = taskData.fn_index[depdata]
443 taskid = taskData.gettask_id(dep, taskname, False)
444 if taskid is not None:
445 depends.append(taskid)
446 for depid in taskData.depids[fnid]:
447 # Won't be in build_targets if ASSUME_PROVIDED
448 if depid in taskData.build_targets:
449 depdata = taskData.build_targets[depid][0]
450 if depdata is not None:
451 dep = taskData.fn_index[depdata]
452 taskid = taskData.gettask_id(dep, taskname, False)
453 if taskid is not None:
454 depends.append(taskid)
455 455
456 # Rmove all self references 456 # Rmove all self references
457 if task in depends: 457 if task in depends:
@@ -483,10 +483,9 @@ class RunQueue:
483 fnid = self.runq_fnid[task] 483 fnid = self.runq_fnid[task]
484 if fnid not in reccumdepends: 484 if fnid not in reccumdepends:
485 reccumdepends[fnid] = set() 485 reccumdepends[fnid] = set()
486 if task in self.runq_depends: 486 if fnid in tdepends_fnid:
487 reccumdepends[fnid].update(self.runq_depends[task]) 487 reccumdepends[fnid].update(tdepends_fnid[fnid])
488 if fnid in tdepends_fnid: 488 reccumdepends[fnid].update(self.runq_depends[task])
489 reccumdepends[fnid].update(tdepends_fnid[fnid])
490 for task in range(len(self.runq_fnid)): 489 for task in range(len(self.runq_fnid)):
491 taskfnid = self.runq_fnid[task] 490 taskfnid = self.runq_fnid[task]
492 for fnid in reccumdepends: 491 for fnid in reccumdepends:
@@ -504,6 +503,9 @@ class RunQueue:
504 if len(runq_recrdepends[task]) > 0: 503 if len(runq_recrdepends[task]) > 0:
505 taskfnid = self.runq_fnid[task] 504 taskfnid = self.runq_fnid[task]
506 for dep in reccumdepends[taskfnid]: 505 for dep in reccumdepends[taskfnid]:
506 # Ignore self references
507 if dep == task:
508 continue
507 for taskname in runq_recrdepends[task]: 509 for taskname in runq_recrdepends[task]:
508 if taskData.tasks_name[dep] == taskname: 510 if taskData.tasks_name[dep] == taskname:
509 self.runq_depends[task].add(dep) 511 self.runq_depends[task].add(dep)