summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/runqueue.py62
1 files changed, 31 insertions, 31 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 2f204aea97..20187f3219 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -345,6 +345,33 @@ class RunQueue:
345 # process is repeated for each type of dependency (tdepends, deptask, 345 # process is repeated for each type of dependency (tdepends, deptask,
346 # rdeptast, recrdeptask, idepends). 346 # rdeptast, recrdeptask, idepends).
347 347
348 def add_build_dependencies(depids, tasknames, depends):
349 for depid in depids:
350 # Won't be in build_targets if ASSUME_PROVIDED
351 if depid not in taskData.build_targets:
352 continue
353 depdata = taskData.build_targets[depid][0]
354 if depdata is None:
355 continue
356 dep = taskData.fn_index[depdata]
357 for taskname in tasknames:
358 taskid = taskData.gettask_id(dep, taskname, False)
359 if taskid is not None:
360 depends.append(taskid)
361
362 def add_runtime_dependencies(depids, tasknames, depends):
363 for depid in depids:
364 if depid not in taskData.run_targets:
365 continue
366 depdata = taskData.run_targets[depid][0]
367 if depdata is None:
368 continue
369 dep = taskData.fn_index[depdata]
370 for taskname in tasknames:
371 taskid = taskData.gettask_id(dep, taskname, False)
372 if taskid is not None:
373 depends.append(taskid)
374
348 for task in range(len(taskData.tasks_name)): 375 for task in range(len(taskData.tasks_name)):
349 depends = [] 376 depends = []
350 recrdepends = [] 377 recrdepends = []
@@ -367,14 +394,7 @@ class RunQueue:
367 # (makes sure sometask runs after someothertask of all DEPENDS) 394 # (makes sure sometask runs after someothertask of all DEPENDS)
368 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']: 395 if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']:
369 tasknames = task_deps['deptask'][taskData.tasks_name[task]].split() 396 tasknames = task_deps['deptask'][taskData.tasks_name[task]].split()
370 for depid in taskData.depids[fnid]: 397 add_build_dependencies(taskData.depids[fnid], tasknames, depends)
371 # Won't be in build_targets if ASSUME_PROVIDED
372 if depid in taskData.build_targets:
373 depdata = taskData.build_targets[depid][0]
374 if depdata is not None:
375 dep = taskData.fn_index[depdata]
376 for taskname in tasknames:
377 depends.append(taskData.gettask_id(dep, taskname))
378 398
379 # Resolve 'rdeptask' dependencies 399 # Resolve 'rdeptask' dependencies
380 # 400 #
@@ -382,12 +402,7 @@ class RunQueue:
382 # (makes sure sometask runs after someothertask of all RDEPENDS) 402 # (makes sure sometask runs after someothertask of all RDEPENDS)
383 if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']: 403 if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']:
384 taskname = task_deps['rdeptask'][taskData.tasks_name[task]] 404 taskname = task_deps['rdeptask'][taskData.tasks_name[task]]
385 for depid in taskData.rdepids[fnid]: 405 add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
386 if depid in taskData.run_targets:
387 depdata = taskData.run_targets[depid][0]
388 if depdata is not None:
389 dep = taskData.fn_index[depdata]
390 depends.append(taskData.gettask_id(dep, taskname))
391 406
392 # Resolve inter-task dependencies 407 # Resolve inter-task dependencies
393 # 408 #
@@ -416,23 +431,8 @@ class RunQueue:
416 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']: 431 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
417 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split(): 432 for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split():
418 recrdepends.append(taskname) 433 recrdepends.append(taskname)
419 for depid in taskData.rdepids[fnid]: 434 add_build_dependencies(taskData.depids[fnid], [taskname], depends)
420 if depid in taskData.run_targets: 435 add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
421 depdata = taskData.run_targets[depid][0]
422 if depdata is not None:
423 dep = taskData.fn_index[depdata]
424 taskid = taskData.gettask_id(dep, taskname, False)
425 if taskid is not None:
426 depends.append(taskid)
427 for depid in taskData.depids[fnid]:
428 # Won't be in build_targets if ASSUME_PROVIDED
429 if depid in taskData.build_targets:
430 depdata = taskData.build_targets[depid][0]
431 if depdata is not None:
432 dep = taskData.fn_index[depdata]
433 taskid = taskData.gettask_id(dep, taskname, False)
434 if taskid is not None:
435 depends.append(taskid)
436 436
437 # Rmove all self references 437 # Rmove all self references
438 if task in depends: 438 if task in depends: