diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 28eb072bee..608aff8ad7 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -705,11 +705,27 @@ class RunQueueData: | |||
705 | continue | 705 | continue |
706 | self.runq_setscene.append(task) | 706 | self.runq_setscene.append(task) |
707 | 707 | ||
708 | def invalidate_task(fn, taskname, error_nostamp): | ||
709 | taskdep = self.dataCache.task_deps[fn] | ||
710 | if 'nostamp' in taskdep and taskname in taskdep['nostamp']: | ||
711 | if error_nostamp: | ||
712 | bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname) | ||
713 | else: | ||
714 | bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname) | ||
715 | else: | ||
716 | logger.verbose("Invalidate task %s, %s", taskname, fn) | ||
717 | bb.parse.siggen.invalidate_task(taskname, self.dataCache, fn) | ||
718 | |||
708 | # Invalidate task if force mode active | 719 | # Invalidate task if force mode active |
709 | if self.cooker.configuration.force: | 720 | if self.cooker.configuration.force: |
710 | for (fn, target) in self.target_pairs: | 721 | for (fn, target) in self.target_pairs: |
711 | logger.verbose("Invalidate task %s, %s", target, fn) | 722 | invalidate_task(fn, target, False) |
712 | bb.parse.siggen.invalidate_task(target, self.dataCache, fn) | 723 | |
724 | # Invalidate task if invalidate mode active | ||
725 | if self.cooker.configuration.invalidate_stamp: | ||
726 | for (fn, target) in self.target_pairs: | ||
727 | for st in self.cooker.configuration.invalidate_stamp.split(','): | ||
728 | invalidate_task(fn, "do_%s" % st, True) | ||
713 | 729 | ||
714 | # Interate over the task list and call into the siggen code | 730 | # Interate over the task list and call into the siggen code |
715 | dealtwith = set() | 731 | dealtwith = set() |