summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/runqueue.py33
1 files changed, 3 insertions, 30 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index b19b524e77..19af73cb3c 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1194,7 +1194,6 @@ class RunQueue:
1194 1194
1195 self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY") or "perfile" 1195 self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY") or "perfile"
1196 self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION") or None 1196 self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION") or None
1197 self.setsceneverify = cfgData.getVar("BB_SETSCENE_VERIFY_FUNCTION2") or None
1198 self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID") or None 1197 self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID") or None
1199 1198
1200 self.state = runQueuePrepare 1199 self.state = runQueuePrepare
@@ -1819,32 +1818,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1819 found = True 1818 found = True
1820 self.rq.scenequeue_covered.add(tid) 1819 self.rq.scenequeue_covered.add(tid)
1821 1820
1822 logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered)) 1821 logger.debug(1, 'Skip list %s', sorted(self.rq.scenequeue_covered))
1823
1824 # Allow the metadata to elect for setscene tasks to run anyway
1825 covered_remove = set()
1826 if self.rq.setsceneverify:
1827 invalidtasks = []
1828 tasknames = {}
1829 fns = {}
1830 for tid in self.rqdata.runtaskentries:
1831 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
1832 taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
1833 fns[tid] = taskfn
1834 tasknames[tid] = taskname
1835 if 'noexec' in taskdep and taskname in taskdep['noexec']:
1836 continue
1837 if self.rq.check_stamp_task(tid, taskname + "_setscene", cache=self.stampcache):
1838 logger.debug(2, 'Setscene stamp current for task %s', tid)
1839 continue
1840 if self.rq.check_stamp_task(tid, taskname, recurse = True, cache=self.stampcache):
1841 logger.debug(2, 'Normal stamp current for task %s', tid)
1842 continue
1843 invalidtasks.append(tid)
1844
1845 call = self.rq.setsceneverify + "(covered, tasknames, fns, d, invalidtasks=invalidtasks)"
1846 locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : tasknames, "fns" : fns, "d" : self.cooker.data, "invalidtasks" : invalidtasks }
1847 covered_remove = bb.utils.better_eval(call, locs)
1848 1822
1849 def removecoveredtask(tid): 1823 def removecoveredtask(tid):
1850 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) 1824 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
@@ -1852,9 +1826,9 @@ class RunQueueExecuteTasks(RunQueueExecute):
1852 bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn) 1826 bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn)
1853 self.rq.scenequeue_covered.remove(tid) 1827 self.rq.scenequeue_covered.remove(tid)
1854 1828
1855 toremove = covered_remove | self.rq.scenequeue_notcovered 1829 toremove = self.rq.scenequeue_notcovered
1856 for task in toremove: 1830 for task in toremove:
1857 logger.debug(1, 'Not skipping task %s due to setsceneverify', task) 1831 logger.debug(1, 'Not skipping task %s', task)
1858 while toremove: 1832 while toremove:
1859 covered_remove = [] 1833 covered_remove = []
1860 for task in toremove: 1834 for task in toremove:
@@ -1871,7 +1845,6 @@ class RunQueueExecuteTasks(RunQueueExecute):
1871 1845
1872 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered) 1846 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
1873 1847
1874
1875 for mc in self.rqdata.dataCaches: 1848 for mc in self.rqdata.dataCaches:
1876 target_pairs = [] 1849 target_pairs = []
1877 for tid in self.rqdata.target_tids: 1850 for tid in self.rqdata.target_tids: