summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Larson <chris_larson@mentor.com>2015-08-03 12:20:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-01 20:45:41 +0100
commit94b3f3d6bdfbfa47f7eb3c3de64940a145b2ddd1 (patch)
tree393f4e89f0df3f9c14e40a32d13944136b0bb9a0
parent1c2f6b9b7b9e700146944b9d6d2114e0d014ee81 (diff)
downloadbitbake-94b3f3d6bdfbfa47f7eb3c3de64940a145b2ddd1.zip
build: delete tasks thoroughly
We want addtask to be able to bring back a deleted task, but we don't want its previous dependencies to come back with it, so rather than marking a task as deleted and then skipping tasks marked as such, actually delete the task and its dependency information in deltask. While we're in that part of the code, also fix a couple 'not foo in bar' instances to 'foo not in bar', which is preferred in python. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/build.py23
-rw-r--r--lib/bb/parse/ast.py3
2 files changed, 14 insertions, 12 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py
index 764163f3..948c3951 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -686,7 +686,7 @@ def stampfile(taskname, d, file_name = None):
"""
return stamp_internal(taskname, d, file_name)
-def add_tasks(tasklist, deltasklist, d):
+def add_tasks(tasklist, d):
task_deps = d.getVar('_task_deps', False)
if not task_deps:
task_deps = {}
@@ -698,9 +698,6 @@ def add_tasks(tasklist, deltasklist, d):
for task in tasklist:
task = d.expand(task)
- if task in deltasklist:
- continue
-
d.setVarFlag(task, 'task', 1)
if not task in task_deps['tasks']:
@@ -738,7 +735,7 @@ def addtask(task, before, after, d):
d.setVarFlag(task, "task", 1)
bbtasks = d.getVar('__BBTASKS', False) or []
- if not task in bbtasks:
+ if task not in bbtasks:
bbtasks.append(task)
d.setVar('__BBTASKS', bbtasks)
@@ -760,8 +757,14 @@ def deltask(task, d):
if task[:3] != "do_":
task = "do_" + task
- bbtasks = d.getVar('__BBDELTASKS', False) or []
- if not task in bbtasks:
- bbtasks.append(task)
- d.setVar('__BBDELTASKS', bbtasks)
-
+ bbtasks = d.getVar('__BBTASKS', False) or []
+ if task in bbtasks:
+ bbtasks.remove(task)
+ d.setVar('__BBTASKS', bbtasks)
+
+ d.delVarFlag(task, 'deps')
+ for bbtask in d.getVar('__BBTASKS', False) or []:
+ deps = d.getVarFlag(bbtask, 'deps') or []
+ if task in deps:
+ deps.remove(task)
+ d.setVarFlag(bbtask, 'deps', deps)
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index bd42bd3a..11db1801 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -330,8 +330,7 @@ def finalize(fn, d, variant = None):
bb.data.update_data(d)
tasklist = d.getVar('__BBTASKS', False) or []
- deltasklist = d.getVar('__BBDELTASKS', False) or []
- bb.build.add_tasks(tasklist, deltasklist, d)
+ bb.build.add_tasks(tasklist, d)
bb.parse.siggen.finalise(fn, d, variant)