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 <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2014-03-26 13:46:54 +00:00
parent 604dd7374b
commit 774eb753d8
3 changed files with 9 additions and 6 deletions

View File

@ -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)

View File

@ -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 = []

View File

@ -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()