From 774eb753d8f23d5887c476062acced3bb0ac40c7 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 26 Mar 2014 13:46:54 +0000 Subject: [PATCH] bitbake: bitbake: Force -S option to take a parameter There is no easy way to make this change. We really need parameters for the -S (dump signatures) handling code. Such a parameter can then be used within the codebase to handle the signatures in different ways. For now, "none" is the recommended default and "printdiff" will execute the new (and more expensive) comparison algorithms. (Bitbake rev: b9873588696507dfb6aade6821f6f75cb9a19e0a) Signed-off-by: Richard Purdie --- bitbake/bin/bitbake | 4 ++-- bitbake/lib/bb/cookerdata.py | 2 +- bitbake/lib/bb/runqueue.py | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) 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()