Chromium Code Reviews| Index: Source/bindings/scripts/idl_compiler.py |
| diff --git a/Source/bindings/scripts/idl_compiler.py b/Source/bindings/scripts/idl_compiler.py |
| index c74aae7a002777349c65c6c18c68f1ae8c266ba8..a123760c7b9204eaf38e075b5cd3f378af496f88 100755 |
| --- a/Source/bindings/scripts/idl_compiler.py |
| +++ b/Source/bindings/scripts/idl_compiler.py |
| @@ -38,15 +38,17 @@ import os |
| import cPickle as pickle |
| import sys |
| -from code_generator_v8 import CodeGeneratorV8 |
| +from code_generator_v8 import CodeGeneratorDictionaryImpl, CodeGeneratorV8 |
| from idl_reader import IdlReader |
| -from utilities import write_file |
| +from utilities import read_idl_files_list_from_file, write_file |
| def parse_options(): |
| parser = OptionParser() |
| parser.add_option('--cache-directory', |
| help='cache directory, defaults to output directory') |
| + parser.add_option('--generate-dictionary-impl', |
| + action="store_true", default=False) |
| parser.add_option('--output-directory') |
| parser.add_option('--interfaces-info-file') |
| parser.add_option('--write-file-only-if-changed', type='int') |
| @@ -124,14 +126,49 @@ class IdlCompilerV8(IdlCompiler): |
| self.compile_and_write(idl_filename) |
| -def main(): |
| - options, idl_filename = parse_options() |
| +class IdlCompilerDictionaryImpl(IdlCompiler): |
| + def __init__(self, *args, **kwargs): |
| + use_relative_output_path = kwargs.get('use_relative_output_path', True) |
| + kwargs.pop('use_relative_output_path', None) |
| + IdlCompiler.__init__(self, *args, **kwargs) |
| + self.code_generator = CodeGeneratorDictionaryImpl( |
| + self.interfaces_info, self.cache_directory, self.output_directory, |
| + use_relative_output_path=use_relative_output_path) |
| + |
| + def compile_file(self, idl_filename): |
| + self.compile_and_write(idl_filename) |
| + |
| + |
| +def generate_bindings(options, input_filename): |
| idl_compiler = IdlCompilerV8( |
| options.output_directory, |
| cache_directory=options.cache_directory, |
| interfaces_info_filename=options.interfaces_info_file, |
| only_if_changed=options.write_file_only_if_changed) |
| - idl_compiler.compile_file(idl_filename) |
| + idl_compiler.compile_file(input_filename) |
| + |
| + |
| +def generate_dictionary_impl(options, input_filename): |
| + idl_compiler = IdlCompilerDictionaryImpl( |
| + options.output_directory, |
| + cache_directory=options.cache_directory, |
| + interfaces_info_filename=options.interfaces_info_file, |
| + only_if_changed=options.write_file_only_if_changed) |
| + |
| + idl_filenames = read_idl_files_list_from_file(input_filename) |
| + for idl_filename in idl_filenames: |
| + idl_compiler.compile_file(idl_filename) |
| + |
| + |
| +def main(): |
| + options, input_filename = parse_options() |
| + if options.generate_dictionary_impl: |
| + # |input_filename| should be a file which contains list of IDL |
|
haraken
2014/08/26 04:00:40
list => a list
bashi
2014/08/27 05:06:32
Done.
|
| + # dictionary paths. |
| + generate_dictionary_impl(options, input_filename) |
| + else: |
| + # |input_filename| should be path of an IDL file. |
|
haraken
2014/08/26 04:00:40
path => a path
bashi
2014/08/27 05:06:32
Done.
|
| + generate_bindings(options, input_filename) |
| if __name__ == '__main__': |