aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/taskdata.py33
1 files changed, 15 insertions, 18 deletions
diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py
index d8bdbcabf9..1f3b24c845 100644
--- a/bitbake/lib/bb/taskdata.py
+++ b/bitbake/lib/bb/taskdata.py
@@ -89,6 +89,19 @@ class TaskData:
self.add_extra_deps(fn, dataCache)
+ # Common code for dep_name/depends = 'depends'/idepends and 'rdepends'/irdepends
+ def handle_deps(task, dep_name, depends, seen):
+ if dep_name in task_deps and task in task_deps[dep_name]:
+ ids = []
+ for dep in task_deps[dep_name][task].split():
+ if dep:
+ parts = dep.split(":")
+ if len(parts) != 2:
+ bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain exactly one ':' character.\n Task '%s' should be specified in the form 'packagename:task'" % (fn, dep, dep_name))
+ ids.append((parts[0], parts[1]))
+ seen(parts[0])
+ depends.extend(ids)
+
for task in task_deps['tasks']:
tid = "%s:%s" % (fn, task)
@@ -105,24 +118,8 @@ class TaskData:
self.taskentries[tid].tdepends.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:
- if ":" not in dep:
- bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'depends' should be specified in the form 'packagename:task'" % (fn, dep))
- ids.append(((dep.split(":")[0]), dep.split(":")[1]))
- self.seen_build_target(dep.split(":")[0])
- self.taskentries[tid].idepends.extend(ids)
- if 'rdepends' in task_deps and task in task_deps['rdepends']:
- ids = []
- for dep in task_deps['rdepends'][task].split():
- if dep:
- if ":" not in dep:
- bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'rdepends' should be specified in the form 'packagename:task'" % (fn, dep))
- ids.append(((dep.split(":")[0]), dep.split(":")[1]))
- self.seen_run_target(dep.split(":")[0])
- self.taskentries[tid].irdepends.extend(ids)
+ handle_deps(task, 'depends', self.taskentries[tid].idepends, self.seen_build_target)
+ handle_deps(task, 'rdepends', self.taskentries[tid].irdepends, self.seen_run_target)
# Work out build dependencies
if not fn in self.depids: