summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/taskdata.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/taskdata.py')
-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:
89 89
90 self.add_extra_deps(fn, dataCache) 90 self.add_extra_deps(fn, dataCache)
91 91
92 # Common code for dep_name/depends = 'depends'/idepends and 'rdepends'/irdepends
93 def handle_deps(task, dep_name, depends, seen):
94 if dep_name in task_deps and task in task_deps[dep_name]:
95 ids = []
96 for dep in task_deps[dep_name][task].split():
97 if dep:
98 parts = dep.split(":")
99 if len(parts) != 2:
100 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))
101 ids.append((parts[0], parts[1]))
102 seen(parts[0])
103 depends.extend(ids)
104
92 for task in task_deps['tasks']: 105 for task in task_deps['tasks']:
93 106
94 tid = "%s:%s" % (fn, task) 107 tid = "%s:%s" % (fn, task)
@@ -105,24 +118,8 @@ class TaskData:
105 self.taskentries[tid].tdepends.extend(parentids) 118 self.taskentries[tid].tdepends.extend(parentids)
106 119
107 # Touch all intertask dependencies 120 # Touch all intertask dependencies
108 if 'depends' in task_deps and task in task_deps['depends']: 121 handle_deps(task, 'depends', self.taskentries[tid].idepends, self.seen_build_target)
109 ids = [] 122 handle_deps(task, 'rdepends', self.taskentries[tid].irdepends, self.seen_run_target)
110 for dep in task_deps['depends'][task].split():
111 if dep:
112 if ":" not in dep:
113 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))
114 ids.append(((dep.split(":")[0]), dep.split(":")[1]))
115 self.seen_build_target(dep.split(":")[0])
116 self.taskentries[tid].idepends.extend(ids)
117 if 'rdepends' in task_deps and task in task_deps['rdepends']:
118 ids = []
119 for dep in task_deps['rdepends'][task].split():
120 if dep:
121 if ":" not in dep:
122 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))
123 ids.append(((dep.split(":")[0]), dep.split(":")[1]))
124 self.seen_run_target(dep.split(":")[0])
125 self.taskentries[tid].irdepends.extend(ids)
126 123
127 # Work out build dependencies 124 # Work out build dependencies
128 if not fn in self.depids: 125 if not fn in self.depids: