summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/parse/parse_py/BBHandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/parse/parse_py/BBHandler.py')
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py51
1 files changed, 19 insertions, 32 deletions
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py
index 2a30e5895a..d7bf6d4f37 100644
--- a/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -95,6 +95,10 @@ def handle(fn, d, include = 0):
95 if ext == ".bbclass": 95 if ext == ".bbclass":
96 __classname__ = root 96 __classname__ = root
97 classes.append(__classname__) 97 classes.append(__classname__)
98 __inherit_cache = data.getVar('__inherit_cache', d) or []
99 if not fn in __inherit_cache:
100 __inherit_cache.append(fn)
101 data.setVar('__inherit_cache', __inherit_cache, d)
98 102
99 if include != 0: 103 if include != 0:
100 oldfile = data.getVar('FILE', d) 104 oldfile = data.getVar('FILE', d)
@@ -126,10 +130,6 @@ def handle(fn, d, include = 0):
126 130
127 if ext != ".bbclass": 131 if ext != ".bbclass":
128 data.setVar('FILE', fn, d) 132 data.setVar('FILE', fn, d)
129 i = (data.getVar("INHERIT", d, 1) or "").split()
130 if not "base" in i and __classname__ != "base":
131 i[0:0] = ["base"]
132 inherit(i, d)
133 133
134 lineno = 0 134 lineno = 0
135 while 1: 135 while 1:
@@ -171,33 +171,12 @@ def handle(fn, d, include = 0):
171 all_handlers = {} 171 all_handlers = {}
172 for var in data.getVar('__BBHANDLERS', d) or []: 172 for var in data.getVar('__BBHANDLERS', d) or []:
173 # try to add the handler 173 # try to add the handler
174 # if we added it remember the choiche
175 handler = data.getVar(var,d) 174 handler = data.getVar(var,d)
176 if bb.event.register(var,handler) == bb.event.Registered: 175 bb.event.register(var, handler)
177 all_handlers[var] = handler
178
179 tasklist = {}
180 for var in data.getVar('__BBTASKS', d) or []:
181 if var not in tasklist:
182 tasklist[var] = []
183 deps = data.getVarFlag(var, 'deps', d) or []
184 for p in deps:
185 if p not in tasklist[var]:
186 tasklist[var].append(p)
187
188 postdeps = data.getVarFlag(var, 'postdeps', d) or []
189 for p in postdeps:
190 if p not in tasklist:
191 tasklist[p] = []
192 if var not in tasklist[p]:
193 tasklist[p].append(var)
194 176
177 tasklist = data.getVar('__BBTASKS', d) or []
195 bb.build.add_tasks(tasklist, d) 178 bb.build.add_tasks(tasklist, d)
196 179
197 # now add the handlers
198 if not len(all_handlers) == 0:
199 data.setVar('__all_handlers__', all_handlers, d)
200
201 bbpath.pop(0) 180 bbpath.pop(0)
202 if oldfile: 181 if oldfile:
203 bb.data.setVar("FILE", oldfile, d) 182 bb.data.setVar("FILE", oldfile, d)
@@ -342,15 +321,23 @@ def feeder(lineno, s, fn, root, d):
342 data.setVarFlag(var, "task", 1, d) 321 data.setVarFlag(var, "task", 1, d)
343 322
344 bbtasks = data.getVar('__BBTASKS', d) or [] 323 bbtasks = data.getVar('__BBTASKS', d) or []
345 bbtasks.append(var) 324 if not var in bbtasks:
325 bbtasks.append(var)
346 data.setVar('__BBTASKS', bbtasks, d) 326 data.setVar('__BBTASKS', bbtasks, d)
347 327
328 existing = data.getVarFlag(var, "deps", d) or []
348 if after is not None: 329 if after is not None:
349# set up deps for function 330 # set up deps for function
350 data.setVarFlag(var, "deps", after.split(), d) 331 for entry in after.split():
332 if entry not in existing:
333 existing.append(entry)
334 data.setVarFlag(var, "deps", existing, d)
351 if before is not None: 335 if before is not None:
352# set up things that depend on this func 336 # set up things that depend on this func
353 data.setVarFlag(var, "postdeps", before.split(), d) 337 for entry in before.split():
338 existing = data.getVarFlag(entry, "deps", d) or []
339 if var not in existing:
340 data.setVarFlag(entry, "deps", [var] + existing, d)
354 return 341 return
355 342
356 m = __addhandler_regexp__.match(s) 343 m = __addhandler_regexp__.match(s)