OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """The frontend for the Mojo bindings system.""" | 6 """The frontend for the Mojo bindings system.""" |
7 | 7 |
8 | 8 |
9 import argparse | 9 import argparse |
10 import imp | 10 import imp |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 module.path = module.path.replace('\\', '/') | 135 module.path = module.path.replace('\\', '/') |
136 | 136 |
137 if self._should_generate(filename): | 137 if self._should_generate(filename): |
138 for generator_module in generator_modules: | 138 for generator_module in generator_modules: |
139 generator = generator_module.Generator(module, args.output_dir) | 139 generator = generator_module.Generator(module, args.output_dir) |
140 filtered_args = [] | 140 filtered_args = [] |
141 if hasattr(generator_module, 'GENERATOR_PREFIX'): | 141 if hasattr(generator_module, 'GENERATOR_PREFIX'): |
142 prefix = '--' + generator_module.GENERATOR_PREFIX + '_' | 142 prefix = '--' + generator_module.GENERATOR_PREFIX + '_' |
143 filtered_args = [arg for arg in remaining_args | 143 filtered_args = [arg for arg in remaining_args |
144 if arg.startswith(prefix)] | 144 if arg.startswith(prefix)] |
| 145 if args.generate_type_info: |
| 146 filtered_args.append("--generate_type_info") |
145 generator.GenerateFiles(filtered_args) | 147 generator.GenerateFiles(filtered_args) |
146 | 148 |
147 # Save result. | 149 # Save result. |
148 self._processed_files[filename] = module | 150 self._processed_files[filename] = module |
149 return module | 151 return module |
150 | 152 |
151 def _ParseFileAndImports(self, filename, import_directories, | 153 def _ParseFileAndImports(self, filename, import_directories, |
152 imported_filename_stack): | 154 imported_filename_stack): |
153 # Ignore already-parsed files. | 155 # Ignore already-parsed files. |
154 if filename in self._parsed_files: | 156 if filename in self._parsed_files: |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 metavar="GENERATORS", | 199 metavar="GENERATORS", |
198 default="c++,dart,go,javascript,java,python", | 200 default="c++,dart,go,javascript,java,python", |
199 help="comma-separated list of generators") | 201 help="comma-separated list of generators") |
200 parser.add_argument("--debug_print_intermediate", action="store_true", | 202 parser.add_argument("--debug_print_intermediate", action="store_true", |
201 help="print the intermediate representation") | 203 help="print the intermediate representation") |
202 parser.add_argument("-I", dest="import_directories", action="append", | 204 parser.add_argument("-I", dest="import_directories", action="append", |
203 metavar="directory", default=[], | 205 metavar="directory", default=[], |
204 help="add a directory to be searched for import files") | 206 help="add a directory to be searched for import files") |
205 parser.add_argument("--use_bundled_pylibs", action="store_true", | 207 parser.add_argument("--use_bundled_pylibs", action="store_true", |
206 help="use Python modules bundled in the SDK") | 208 help="use Python modules bundled in the SDK") |
| 209 parser.add_argument("--generate-type-info", dest="generate_type_info", |
| 210 action="store_true", |
| 211 help="generate mojom type descriptors") |
| 212 parser.add_argument("--no-generate-type-info", dest="generate_type_info", |
| 213 action="store_false", |
| 214 help="do not generate mojom type descriptors") |
| 215 parser.set_defaults(generate_type_info=True) |
207 (args, remaining_args) = parser.parse_known_args(argv) | 216 (args, remaining_args) = parser.parse_known_args(argv) |
208 | 217 |
209 generator_modules = LoadGenerators(args.generators_string) | 218 generator_modules = LoadGenerators(args.generators_string) |
210 | 219 |
211 fileutil.EnsureDirectoryExists(args.output_dir) | 220 fileutil.EnsureDirectoryExists(args.output_dir) |
212 | 221 |
213 processor = MojomProcessor(lambda filename: filename in args.filename) | 222 processor = MojomProcessor(lambda filename: filename in args.filename) |
214 for filename in args.filename: | 223 for filename in args.filename: |
215 processor.ProcessFile(args, remaining_args, generator_modules, filename) | 224 processor.ProcessFile(args, remaining_args, generator_modules, filename) |
216 | 225 |
217 return 0 | 226 return 0 |
218 | 227 |
219 | 228 |
220 if __name__ == "__main__": | 229 if __name__ == "__main__": |
221 sys.exit(main(sys.argv[1:])) | 230 sys.exit(main(sys.argv[1:])) |
OLD | NEW |