summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/build.py37
-rw-r--r--bitbake/lib/bb/parse/ast.py33
2 files changed, 34 insertions, 36 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 6b39526..1524da0 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -668,9 +668,36 @@ def add_tasks(tasklist, deltasklist, d):
# don't assume holding a reference
d.setVar('_task_deps', task_deps)
-def remove_task(task, kill, d):
- """Remove an BB 'task'.
+def addtask(task, before, after, d):
+ if task[:3] != "do_":
+ task = "do_" + task
+
+ d.setVarFlag(task, "task", 1)
+ bbtasks = d.getVar('__BBTASKS') or []
+ if not task in bbtasks:
+ bbtasks.append(task)
+ d.setVar('__BBTASKS', bbtasks)
+
+ existing = d.getVarFlag(task, "deps") or []
+ if after is not None:
+ # set up deps for function
+ for entry in after.split():
+ if entry not in existing:
+ existing.append(entry)
+ d.setVarFlag(task, "deps", existing)
+ if before is not None:
+ # set up things that depend on this func
+ for entry in before.split():
+ existing = d.getVarFlag(entry, "deps") or []
+ if task not in existing:
+ d.setVarFlag(entry, "deps", [task] + existing)
+
+def deltask(task, d):
+ if task[:3] != "do_":
+ task = "do_" + task
+
+ bbtasks = d.getVar('__BBDELTASKS') or []
+ if not task in bbtasks:
+ bbtasks.append(task)
+ d.setVar('__BBDELTASKS', bbtasks)
- If kill is 1, also remove tasks that depend on this task."""
-
- d.delVarFlag(task, 'task')
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 2036cd4..a202053 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -235,29 +235,7 @@ class AddTaskNode(AstNode):
self.after = after
def eval(self, data):
- var = self.func
- if self.func[:3] != "do_":
- var = "do_" + self.func
-
- data.setVarFlag(var, "task", 1)
- bbtasks = data.getVar('__BBTASKS') or []
- if not var in bbtasks:
- bbtasks.append(var)
- data.setVar('__BBTASKS', bbtasks)
-
- existing = data.getVarFlag(var, "deps") or []
- if self.after is not None:
- # set up deps for function
- for entry in self.after.split():
- if entry not in existing:
- existing.append(entry)
- data.setVarFlag(var, "deps", existing)
- if self.before is not None:
- # set up things that depend on this func
- for entry in self.before.split():
- existing = data.getVarFlag(entry, "deps") or []
- if var not in existing:
- data.setVarFlag(entry, "deps", [var] + existing)
+ bb.build.addtask(self.func, self.before, self.after, data)
class DelTaskNode(AstNode):
def __init__(self, filename, lineno, func):
@@ -265,14 +243,7 @@ class DelTaskNode(AstNode):
self.func = func
def eval(self, data):
- var = self.func
- if self.func[:3] != "do_":
- var = "do_" + self.func
-
- bbtasks = data.getVar('__BBDELTASKS') or []
- if not var in bbtasks:
- bbtasks.append(var)
- data.setVar('__BBDELTASKS', bbtasks)
+ bb.build.deltask(self.func, data)
class BBHandlerNode(AstNode):
def __init__(self, filename, lineno, fns):
OpenPOWER on IntegriCloud