diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2007-04-01 10:04:37 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2007-04-01 10:04:37 +0000 |
commit | 4ae815df90d539075bf7f82ab1e04461e7e7651e (patch) | |
tree | 7694f41acd438d4d43d279506ba5967cbf7d6159 | |
parent | 159c80b97e96d82e4076ce0c004756243dfe48c3 (diff) | |
download | bitbake-4ae815df90d539075bf7f82ab1e04461e7e7651e.tar.gz |
Add code to handle inter-task dependencies (from trunk)
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | lib/bb/runqueue.py | 9 | ||||
-rw-r--r-- | lib/bb/taskdata.py | 13 |
3 files changed, 22 insertions, 1 deletions
@@ -1,6 +1,7 @@ Changes in Bitbake 1.8.2: - Catch truncated cache file errors - Add PE (Package Epoch) support from Philipp Zabel (pH5) + - Add code to handle inter-task dependencies Changes in Bitbake 1.8.0: - Release 1.7.x as a stable series diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index e95c3b7d5..059f800b6 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -122,6 +122,15 @@ class RunQueue: dep = taskData.fn_index[depdata] depends.append(taskData.gettask_id(dep, taskname)) + idepends = taskData.tasks_idepends[task] + for idepend in idepends: + depid = int(idepend.split(":")[0]) + if depid in taskData.build_targets: + depdata = taskData.build_targets[depid][0] + if depdata: + dep = taskData.fn_index[depdata] + depends.append(taskData.gettask_id(dep, idepend.split(":")[1])) + def add_recursive_build(depid): """ Add build depends of depid to depends diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index 17d6d9553..3d3adfdbd 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -43,6 +43,7 @@ class TaskData: self.tasks_fnid = [] self.tasks_name = [] self.tasks_tdepends = [] + self.tasks_idepends = [] # Cache to speed up task ID lookups self.tasks_lookup = {} @@ -108,6 +109,7 @@ class TaskData: self.tasks_name.append(task) self.tasks_fnid.append(fnid) self.tasks_tdepends.append([]) + self.tasks_idepends.append([]) listid = len(self.tasks_name) - 1 @@ -134,8 +136,9 @@ class TaskData: if fnid in self.tasks_fnid: return - # Work out task dependencies for task in task_graph.allnodes(): + + # Work out task dependencies parentids = [] for dep in task_graph.getparents(task): parentid = self.gettask_id(fn, dep) @@ -143,6 +146,14 @@ class TaskData: taskid = self.gettask_id(fn, task) self.tasks_tdepends[taskid].extend(parentids) + # Touch all intertask dependencies + if 'depends' in task_deps and task in task_deps['depends']: + ids = [] + for dep in task_deps['depends'][task].split(" "): + if dep: + ids.append(str(self.getbuild_id(dep.split(":")[0])) + ":" + dep.split(":")[1]) + self.tasks_idepends[taskid].extend(ids) + # Work out build dependencies if not fnid in self.depids: dependids = {} |