diff options
Diffstat (limited to 'bitbake/lib/bb/build.py')
-rw-r--r-- | bitbake/lib/bb/build.py | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index bcbc55eea5..e9a6fc8c61 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py | |||
@@ -397,35 +397,41 @@ def del_stamp(task, d, file_name = None): | |||
397 | """ | 397 | """ |
398 | stamp_internal(task, d, file_name) | 398 | stamp_internal(task, d, file_name) |
399 | 399 | ||
400 | def add_task(task, deps, d): | 400 | def add_tasks(tasklist, d): |
401 | task_graph = data.getVar('_task_graph', d) | 401 | task_graph = data.getVar('_task_graph', d) |
402 | task_deps = data.getVar('_task_deps', d) | ||
402 | if not task_graph: | 403 | if not task_graph: |
403 | task_graph = bb.digraph() | 404 | task_graph = bb.digraph() |
404 | data.setVarFlag(task, 'task', 1, d) | ||
405 | task_graph.addnode(task, None) | ||
406 | for dep in deps: | ||
407 | if not task_graph.hasnode(dep): | ||
408 | task_graph.addnode(dep, None) | ||
409 | task_graph.addnode(task, dep) | ||
410 | # don't assume holding a reference | ||
411 | data.setVar('_task_graph', task_graph, d) | ||
412 | |||
413 | task_deps = data.getVar('_task_deps', d) | ||
414 | if not task_deps: | 405 | if not task_deps: |
415 | task_deps = {} | 406 | task_deps = {} |
416 | def getTask(name): | ||
417 | deptask = data.getVarFlag(task, name, d) | ||
418 | if deptask: | ||
419 | deptask = data.expand(deptask, d) | ||
420 | if not name in task_deps: | ||
421 | task_deps[name] = {} | ||
422 | task_deps[name][task] = deptask | ||
423 | getTask('depends') | ||
424 | getTask('deptask') | ||
425 | getTask('rdeptask') | ||
426 | getTask('recrdeptask') | ||
427 | getTask('nostamp') | ||
428 | 407 | ||
408 | for task in tasklist: | ||
409 | deps = tasklist[task] | ||
410 | task = data.expand(task, d) | ||
411 | |||
412 | data.setVarFlag(task, 'task', 1, d) | ||
413 | task_graph.addnode(task, None) | ||
414 | for dep in deps: | ||
415 | dep = data.expand(dep, d) | ||
416 | if not task_graph.hasnode(dep): | ||
417 | task_graph.addnode(dep, None) | ||
418 | task_graph.addnode(task, dep) | ||
419 | |||
420 | flags = data.getVarFlags(task, d) | ||
421 | def getTask(name): | ||
422 | if name in flags: | ||
423 | deptask = data.expand(flags[name], d) | ||
424 | if not name in task_deps: | ||
425 | task_deps[name] = {} | ||
426 | task_deps[name][task] = deptask | ||
427 | getTask('depends') | ||
428 | getTask('deptask') | ||
429 | getTask('rdeptask') | ||
430 | getTask('recrdeptask') | ||
431 | getTask('nostamp') | ||
432 | |||
433 | # don't assume holding a reference | ||
434 | data.setVar('_task_graph', task_graph, d) | ||
429 | data.setVar('_task_deps', task_deps, d) | 435 | data.setVar('_task_deps', task_deps, d) |
430 | 436 | ||
431 | def remove_task(task, kill, d): | 437 | def remove_task(task, kill, d): |