summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-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 6b395264b6..1524da0049 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -668,9 +668,36 @@ def add_tasks(tasklist, deltasklist, d):
668 # don't assume holding a reference 668 # don't assume holding a reference
669 d.setVar('_task_deps', task_deps) 669 d.setVar('_task_deps', task_deps)
670 670
671def remove_task(task, kill, d): 671def addtask(task, before, after, d):
672 """Remove an BB 'task'. 672 if task[:3] != "do_":
673 task = "do_" + task
674
675 d.setVarFlag(task, "task", 1)
676 bbtasks = d.getVar('__BBTASKS') or []
677 if not task in bbtasks:
678 bbtasks.append(task)
679 d.setVar('__BBTASKS', bbtasks)
680
681 existing = d.getVarFlag(task, "deps") or []
682 if after is not None:
683 # set up deps for function
684 for entry in after.split():
685 if entry not in existing:
686 existing.append(entry)
687 d.setVarFlag(task, "deps", existing)
688 if before is not None:
689 # set up things that depend on this func
690 for entry in before.split():
691 existing = d.getVarFlag(entry, "deps") or []
692 if task not in existing:
693 d.setVarFlag(entry, "deps", [task] + existing)
694
695def deltask(task, d):
696 if task[:3] != "do_":
697 task = "do_" + task
698
699 bbtasks = d.getVar('__BBDELTASKS') or []
700 if not task in bbtasks:
701 bbtasks.append(task)
702 d.setVar('__BBDELTASKS', bbtasks)
673 703
674 If kill is 1, also remove tasks that depend on this task."""
675
676 d.delVarFlag(task, 'task')
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 2036cd43fe..a2020532ea 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -235,29 +235,7 @@ class AddTaskNode(AstNode):
235 self.after = after 235 self.after = after
236 236
237 def eval(self, data): 237 def eval(self, data):
238 var = self.func 238 bb.build.addtask(self.func, self.before, self.after, data)
239 if self.func[:3] != "do_":
240 var = "do_" + self.func
241
242 data.setVarFlag(var, "task", 1)
243 bbtasks = data.getVar('__BBTASKS') or []
244 if not var in bbtasks:
245 bbtasks.append(var)
246 data.setVar('__BBTASKS', bbtasks)
247
248 existing = data.getVarFlag(var, "deps") or []
249 if self.after is not None:
250 # set up deps for function
251 for entry in self.after.split():
252 if entry not in existing:
253 existing.append(entry)
254 data.setVarFlag(var, "deps", existing)
255 if self.before is not None:
256 # set up things that depend on this func
257 for entry in self.before.split():
258 existing = data.getVarFlag(entry, "deps") or []
259 if var not in existing:
260 data.setVarFlag(entry, "deps", [var] + existing)
261 239
262class DelTaskNode(AstNode): 240class DelTaskNode(AstNode):
263 def __init__(self, filename, lineno, func): 241 def __init__(self, filename, lineno, func):
@@ -265,14 +243,7 @@ class DelTaskNode(AstNode):
265 self.func = func 243 self.func = func
266 244
267 def eval(self, data): 245 def eval(self, data):
268 var = self.func 246 bb.build.deltask(self.func, data)
269 if self.func[:3] != "do_":
270 var = "do_" + self.func
271
272 bbtasks = data.getVar('__BBDELTASKS') or []
273 if not var in bbtasks:
274 bbtasks.append(var)
275 data.setVar('__BBDELTASKS', bbtasks)
276 247
277class BBHandlerNode(AstNode): 248class BBHandlerNode(AstNode):
278 def __init__(self, filename, lineno, fns): 249 def __init__(self, filename, lineno, fns):