bitbake: Force -S option to take a parameter
PATCH 1/1 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.
Signed-off-by Richard Purdie <[email protected]>
---
bitbake/bin/bitbake +2 -2
@@ -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)
bitbake/lib/bb/cookerdata.py +1 -1
@@ -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 = []
bitbake/lib/bb/runqueue.py +6 -3
@@ -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()