OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Generates java source files from a mojom.Module.""" | 5 """Generates java source files from a mojom.Module.""" |
6 | 6 |
7 import argparse | 7 import argparse |
8 import ast | 8 import ast |
9 import contextlib | 9 import contextlib |
10 import os | 10 import os |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 self.Write(self.GenerateInterfaceInternalSource(interface), | 490 self.Write(self.GenerateInterfaceInternalSource(interface), |
491 '%s_Internal.java' % GetNameForElement(interface)) | 491 '%s_Internal.java' % GetNameForElement(interface)) |
492 | 492 |
493 if self.module.constants: | 493 if self.module.constants: |
494 self.Write(self.GenerateConstantsSource(self.module), | 494 self.Write(self.GenerateConstantsSource(self.module), |
495 '%s.java' % GetConstantsMainEntityName(self.module)) | 495 '%s.java' % GetConstantsMainEntityName(self.module)) |
496 | 496 |
497 def GenerateFiles(self, unparsed_args): | 497 def GenerateFiles(self, unparsed_args): |
498 parser = argparse.ArgumentParser() | 498 parser = argparse.ArgumentParser() |
499 parser.add_argument('--java_output_directory', dest='java_output_directory') | 499 parser.add_argument('--java_output_directory', dest='java_output_directory') |
| 500 parser.add_argument('--generate_type_info', dest='generate_type_info', |
| 501 action="store_true") |
500 args = parser.parse_args(unparsed_args) | 502 args = parser.parse_args(unparsed_args) |
501 package_path = GetPackage(self.module).replace('.', '/') | 503 package_path = GetPackage(self.module).replace('.', '/') |
502 | 504 |
503 # Generate the java files in a temporary directory and place a single | 505 # Generate the java files in a temporary directory and place a single |
504 # srcjar in the output directory. | 506 # srcjar in the output directory. |
505 basename = self.MatchMojomFilePath("%s.srcjar" % self.module.name) | 507 basename = self.MatchMojomFilePath("%s.srcjar" % self.module.name) |
506 zip_filename = os.path.join(self.output_dir, basename) | 508 zip_filename = os.path.join(self.output_dir, basename) |
507 with TempDir() as temp_java_root: | 509 with TempDir() as temp_java_root: |
508 self.output_dir = os.path.join(temp_java_root, package_path) | 510 self.output_dir = os.path.join(temp_java_root, package_path) |
509 self.DoGenerateFiles(); | 511 self.DoGenerateFiles(); |
510 ZipContentInto(temp_java_root, zip_filename) | 512 ZipContentInto(temp_java_root, zip_filename) |
511 | 513 |
512 if args.java_output_directory: | 514 if args.java_output_directory: |
513 # If requested, generate the java files directly into indicated directory. | 515 # If requested, generate the java files directly into indicated directory. |
514 self.output_dir = os.path.join(args.java_output_directory, package_path) | 516 self.output_dir = os.path.join(args.java_output_directory, package_path) |
515 self.DoGenerateFiles(); | 517 self.DoGenerateFiles(); |
516 | 518 |
517 def GetJinjaParameters(self): | 519 def GetJinjaParameters(self): |
518 return { | 520 return { |
519 'lstrip_blocks': True, | 521 'lstrip_blocks': True, |
520 'trim_blocks': True, | 522 'trim_blocks': True, |
521 } | 523 } |
522 | 524 |
523 def GetGlobals(self): | 525 def GetGlobals(self): |
524 return { | 526 return { |
525 'namespace': self.module.namespace, | 527 'namespace': self.module.namespace, |
526 'module': self.module, | 528 'module': self.module, |
527 } | 529 } |
OLD | NEW |