Chromium Code Reviews| Index: Source/bindings/scripts/unstable/idl_compiler.py |
| diff --git a/Source/bindings/scripts/unstable/idl_compiler.py b/Source/bindings/scripts/unstable/idl_compiler.py |
| index 3fbf80c75f6efb14323da268b2a506aea3bc7185..8e06aff52ae06fddf75d267d5522af20df17bd4f 100755 |
| --- a/Source/bindings/scripts/unstable/idl_compiler.py |
| +++ b/Source/bindings/scripts/unstable/idl_compiler.py |
| @@ -38,7 +38,6 @@ For details, see bug http://crbug.com/239771 |
| import optparse |
| import os |
| -import cPickle as pickle |
| import sys |
| import code_generator_v8 |
| @@ -48,7 +47,6 @@ def parse_options(): |
| parser = optparse.OptionParser() |
| parser.add_option('--idl-attributes-file') |
| parser.add_option('--output-directory') |
| - parser.add_option('--interfaces-info-file') |
| parser.add_option('--write-file-only-if-changed', type='int') |
| # ensure output comes last, so command line easy to parse via regexes |
| parser.disable_interspersed_args() |
| @@ -62,23 +60,26 @@ def parse_options(): |
| return options, idl_filename |
| -def main(): |
| - options, idl_filename = parse_options() |
| +def compile_idl(idl_filename, output_directory, idl_attributes_file, |
| + curr_interfaces_info={}, reader=None, |
| + write_header_and_cpp=code_generator_v8.write_header_and_cpp): |
|
Nils Barth (inactive)
2014/02/25 07:29:59
I ultimately decided that a code generator object
terry
2014/02/27 23:40:26
This works for me right now. Maybe an abstract ca
|
| basename = os.path.basename(idl_filename) |
| interface_name, _ = os.path.splitext(basename) |
| - output_directory = options.output_directory |
| + output_directory = output_directory |
| - interfaces_info_filename = options.interfaces_info_file |
| - if interfaces_info_filename: |
| - with open(interfaces_info_filename) as interfaces_info_file: |
| - interfaces_info = pickle.load(interfaces_info_file) |
| - else: |
| - interfaces_info = None |
| + interfaces_info = curr_interfaces_info |
| - reader = idl_reader.IdlReader(interfaces_info, options.idl_attributes_file, output_directory) |
| + if reader == None: |
| + reader = idl_reader.IdlReader(interfaces_info, idl_attributes_file, output_directory) |
| definitions = reader.read_idl_definitions(idl_filename) |
| - code_generator_v8.write_header_and_cpp(definitions, interface_name, interfaces_info, output_directory) |
| + write_header_and_cpp(definitions, interface_name, interfaces_info, output_directory) |
| + |
| + return reader |
| +def main(): |
| + options, idl_filename = parse_options() |
| + compile_idl(idl_filename, options.output_directory, options.idl_attributes_file) |
| + |
| if __name__ == '__main__': |
| sys.exit(main()) |