summaryrefslogtreecommitdiffstats
path: root/lib/bb/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bb/build.py')
-rw-r--r--lib/bb/build.py37
1 files changed, 32 insertions, 5 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py
index 6b395264b..1524da004 100644
--- a/lib/bb/build.py
+++ b/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')