diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 5c0b2d4d2a..b173f16ce1 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -139,8 +139,8 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters): parser.add_option("-n", "--dry-run", help = "Don't execute, just go through the motions.", action = "store_true", dest = "dry_run", default = False) - parser.add_option("-S", "--dump-signatures", help = "Don't execute, just dump out the signature construction information.", - action = "store_true", dest = "dump_signatures", default = False) + parser.add_option("-S", "--dump-signatures", help = "Dump out the signature construction information, with no task execution. Parameters are passed to the signature handling code, use 'none' if no specific handler is required.", + action = "append", dest = "dump_signatures", default = []) parser.add_option("-p", "--parse-only", help = "Quit after parsing the BB recipes.", action = "store_true", dest = "parse_only", default = False) diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index 6200b0ebac..b9b9e16675 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py @@ -124,7 +124,7 @@ class CookerConfiguration(object): self.profile = False self.nosetscene = False self.invalidate_stamp = False - self.dump_signatures = False + self.dump_signatures = [] self.dry_run = False self.tracking = False self.interface = [] diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 90fe40b880..423b03c181 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1036,10 +1036,13 @@ class RunQueue: bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data) if self.state is runQueueSceneInit: - if self.cooker.configuration.dump_signatures: - invalidtasks = self.print_diffscenetasks() + dump = self.cooker.configuration.dump_signatures + if dump: + if 'printdiff' in dump: + invalidtasks = self.print_diffscenetasks() self.dump_signatures() - self.write_diffscenetasks(invalidtasks) + if 'printdiff' in dump: + self.write_diffscenetasks(invalidtasks) self.state = runQueueComplete else: self.start_worker()