summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index dff4ff7f3e..b5167126ee 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -757,7 +757,8 @@ class RunQueue:
757 self.cfgData = cfgData 757 self.cfgData = cfgData
758 self.rqdata = RunQueueData(self, cooker, cfgData, dataCache, taskData, targets) 758 self.rqdata = RunQueueData(self, cooker, cfgData, dataCache, taskData, targets)
759 759
760 self.stamppolicy = bb.data.getVar("BB_STAMP_POLICY", cfgData, 1) or "perfile" 760 self.stamppolicy = bb.data.getVar("BB_STAMP_POLICY", cfgData, True) or "perfile"
761 self.hashvalidate = bb.data.getVar("BB_HASHCHECK_FUNCTION", cfgData, True) or None
761 762
762 self.state = runQueuePrepare 763 self.state = runQueuePrepare
763 764
@@ -1326,6 +1327,29 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1326 if len(self.sq_revdeps[task]) == 0: 1327 if len(self.sq_revdeps[task]) == 0:
1327 self.runq_buildable[task] = 1 1328 self.runq_buildable[task] = 1
1328 1329
1330 if self.rq.hashvalidate:
1331 sq_hash = []
1332 sq_hashfn = []
1333 sq_fn = []
1334 sq_task = []
1335 for task in range(len(self.sq_revdeps)):
1336 realtask = self.rqdata.runq_setscene[task]
1337 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]]
1338 sq_fn.append(fn)
1339 sq_hashfn.append(self.rqdata.dataCache.hashfn[fn])
1340 sq_hash.append(self.rqdata.runq_hash[realtask])
1341 sq_task.append(self.rqdata.runq_task[realtask])
1342
1343 call = self.rq.hashvalidate + "(sq_fn, sq_task, sq_hash, sq_hashfn, d)"
1344 locs = { "sq_fn" : sq_fn, "sq_task" : sq_task, "sq_hash" : sq_hash, "sq_hashfn" : sq_hashfn, "d" : self.cooker.configuration.data }
1345 valid = bb.utils.better_eval(call, locs)
1346 for task in range(len(self.sq_revdeps)):
1347 if task not in valid:
1348 bb.msg.debug(2, bb.msg.domain.RunQueue, "No package found so skipping setscene task %s" % (self.rqdata.get_user_idstring(task)))
1349 self.task_failoutright(task)
1350
1351 #print(str(valid))
1352
1329 bb.msg.note(1, bb.msg.domain.RunQueue, "Executing setscene Tasks") 1353 bb.msg.note(1, bb.msg.domain.RunQueue, "Executing setscene Tasks")
1330 1354
1331 self.rq.state = runQueueSceneRun 1355 self.rq.state = runQueueSceneRun