summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/runqueue.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index a4009d4e9b..ca5fe970d2 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1206,9 +1206,30 @@ class RunQueueExecuteTasks(RunQueueExecute):
1206 # Allow the metadata to elect for setscene tasks to run anyway 1206 # Allow the metadata to elect for setscene tasks to run anyway
1207 covered_remove = set() 1207 covered_remove = set()
1208 if self.rq.setsceneverify: 1208 if self.rq.setsceneverify:
1209 call = self.rq.setsceneverify + "(covered, tasknames, fnids, fns, d)" 1209 invalidtasks = []
1210 locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : self.rqdata.runq_task, "fnids" : self.rqdata.runq_fnid, "fns" : self.rqdata.taskData.fn_index, "d" : self.cooker.configuration.data } 1210 for task in xrange(len(self.rqdata.runq_task)):
1211 covered_remove = bb.utils.better_eval(call, locs) 1211 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
1212 taskname = self.rqdata.runq_task[task]
1213 taskdep = self.rqdata.dataCache.task_deps[fn]
1214
1215 if 'noexec' in taskdep and taskname in taskdep['noexec']:
1216 continue
1217 if self.rq.check_stamp_task(task, taskname + "_setscene", cache=self.stampcache):
1218 logger.debug(2, 'Setscene stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(task))
1219 continue
1220 if self.rq.check_stamp_task(task, taskname, recurse = True, cache=self.stampcache):
1221 logger.debug(2, 'Normal stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(task))
1222 continue
1223 invalidtasks.append(task)
1224
1225 call = self.rq.setsceneverify + "(covered, tasknames, fnids, fns, d, invalidtasks=invalidtasks)"
1226 call2 = self.rq.setsceneverify + "(covered, tasknames, fnids, fns, d)"
1227 locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : self.rqdata.runq_task, "fnids" : self.rqdata.runq_fnid, "fns" : self.rqdata.taskData.fn_index, "d" : self.cooker.configuration.data, "invalidtasks" : invalidtasks }
1228 # Backwards compatibility with older versions without invalidtasks
1229 try:
1230 covered_remove = bb.utils.better_eval(call, locs)
1231 except TypeError:
1232 covered_remove = bb.utils.better_eval(call2, locs)
1212 1233
1213 for task in covered_remove: 1234 for task in covered_remove:
1214 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] 1235 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]