mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
bitbake: bitbake: respect force flag in runall and runonly
Specifying the force flag will now cause runall and runonly to invalidate the tasks before running them. This allows a --runall or --runonly to force the tasks to run, even if they would have otherwise been skipped, e.g.: bitbake -f --runall fetch Will run all do_fetch tasks even if they wouldn't be necessary (for example, skipped by setscene) (Bitbake rev: 71e52d3822016027106f2a2e74b8dfdf20f5dc1e) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
6e48f9aa23
commit
46a71949de
+18
-14
@@ -849,6 +849,20 @@ class RunQueueData:
|
||||
for depend in depends:
|
||||
mark_active(depend, depth+1)
|
||||
|
||||
def invalidate_task(tid, error_nostamp):
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
|
||||
taskdep = self.dataCaches[mc].task_deps[taskfn]
|
||||
if fn + ":" + taskname not in taskData[mc].taskentries:
|
||||
logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname)
|
||||
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
|
||||
if error_nostamp:
|
||||
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
|
||||
else:
|
||||
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
|
||||
else:
|
||||
logger.verbose("Invalidate task %s, %s", taskname, fn)
|
||||
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn)
|
||||
|
||||
self.target_tids = []
|
||||
for (mc, target, task, fn) in self.targets:
|
||||
|
||||
@@ -917,6 +931,8 @@ class RunQueueData:
|
||||
|
||||
for tid in list(runall_tids):
|
||||
mark_active(tid,1)
|
||||
if self.cooker.configuration.force:
|
||||
invalidate_task(tid, False)
|
||||
|
||||
for tid in list(self.runtaskentries.keys()):
|
||||
if tid not in runq_build:
|
||||
@@ -938,6 +954,8 @@ class RunQueueData:
|
||||
|
||||
for tid in list(runonly_tids):
|
||||
mark_active(tid,1)
|
||||
if self.cooker.configuration.force:
|
||||
invalidate_task(tid, False)
|
||||
|
||||
for tid in list(self.runtaskentries.keys()):
|
||||
if tid not in runq_build:
|
||||
@@ -1114,20 +1132,6 @@ class RunQueueData:
|
||||
continue
|
||||
self.runq_setscene_tids.append(tid)
|
||||
|
||||
def invalidate_task(tid, error_nostamp):
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
|
||||
taskdep = self.dataCaches[mc].task_deps[taskfn]
|
||||
if fn + ":" + taskname not in taskData[mc].taskentries:
|
||||
logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname)
|
||||
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
|
||||
if error_nostamp:
|
||||
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
|
||||
else:
|
||||
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
|
||||
else:
|
||||
logger.verbose("Invalidate task %s, %s", taskname, fn)
|
||||
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn)
|
||||
|
||||
self.init_progress_reporter.next_stage()
|
||||
|
||||
# Invalidate task if force mode active
|
||||
|
||||
Reference in New Issue
Block a user