aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/parse/parse_py/BBHandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bb/parse/parse_py/BBHandler.py')
-rw-r--r--lib/bb/parse/parse_py/BBHandler.py35
1 files changed, 14 insertions, 21 deletions
diff --git a/lib/bb/parse/parse_py/BBHandler.py b/lib/bb/parse/parse_py/BBHandler.py
index a43eb9478..e9b950acb 100644
--- a/lib/bb/parse/parse_py/BBHandler.py
+++ b/lib/bb/parse/parse_py/BBHandler.py
@@ -176,22 +176,7 @@ def handle(fn, d, include = 0):
handler = data.getVar(var,d)
bb.event.register(var, handler)
- tasklist = {}
- for var in data.getVar('__BBTASKS', d) or []:
- if var not in tasklist:
- tasklist[var] = []
- deps = data.getVarFlag(var, 'deps', d) or []
- for p in deps:
- if p not in tasklist[var]:
- tasklist[var].append(p)
-
- postdeps = data.getVarFlag(var, 'postdeps', d) or []
- for p in postdeps:
- if p not in tasklist:
- tasklist[p] = []
- if var not in tasklist[p]:
- tasklist[p].append(var)
-
+ tasklist = data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
bbpath.pop(0)
@@ -338,15 +323,23 @@ def feeder(lineno, s, fn, root, d):
data.setVarFlag(var, "task", 1, d)
bbtasks = data.getVar('__BBTASKS', d) or []
- bbtasks.append(var)
+ if not var in bbtasks:
+ bbtasks.append(var)
data.setVar('__BBTASKS', bbtasks, d)
+ existing = data.getVarFlag(var, "deps", d) or []
if after is not None:
-# set up deps for function
- data.setVarFlag(var, "deps", after.split(), d)
+ # set up deps for function
+ for entry in after.split():
+ if entry not in existing:
+ existing.append(entry)
+ data.setVarFlag(var, "deps", existing, d)
if before is not None:
-# set up things that depend on this func
- data.setVarFlag(var, "postdeps", before.split(), d)
+ # set up things that depend on this func
+ for entry in before.split():
+ existing = data.getVarFlag(entry, "deps", d) or []
+ if var not in existing:
+ data.setVarFlag(entry, "deps", [var] + existing, d)
return
m = __addhandler_regexp__.match(s)