| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (C) 2013 Google Inc. All rights reserved. | 2 # Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 # | 3 # |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler | 32 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler |
| 33 """ | 33 """ |
| 34 | 34 |
| 35 import abc | 35 import abc |
| 36 from optparse import OptionParser | 36 from optparse import OptionParser |
| 37 import os | 37 import os |
| 38 import cPickle as pickle | 38 import cPickle as pickle |
| 39 | 39 |
| 40 from idl_reader import IdlReader | 40 from idl_reader import IdlReader |
| 41 from utilities import write_file | 41 from utilities import write_file, idl_filename_to_component |
| 42 | 42 |
| 43 | 43 |
| 44 # TODO(terry): Temporary whitelist of IDL files to skip code generating. e.g., | 44 # TODO(terry): Temporary whitelist of IDL files to skip code generating. e.g., |
| 45 # adding 'Animation.idl' to this list will skip that IDL file. | 45 # adding 'Animation.idl' to this list will skip that IDL file. |
| 46 SKIP_IDL_FILES = [''] | 46 SKIP_IDL_FILES = [''] |
| 47 | 47 |
| 48 | 48 |
| 49 def parse_options(): | 49 def parse_options(): |
| 50 parser = OptionParser() | 50 parser = OptionParser() |
| 51 parser.add_option('--idl-attributes-file', | 51 parser.add_option('--idl-attributes-file', |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 100 |
| 101 self.only_if_changed = only_if_changed | 101 self.only_if_changed = only_if_changed |
| 102 self.output_directory = output_directory | 102 self.output_directory = output_directory |
| 103 self.reader = IdlReader(interfaces_info, output_directory) | 103 self.reader = IdlReader(interfaces_info, output_directory) |
| 104 | 104 |
| 105 def compile_and_write(self, idl_filename, output_filenames): | 105 def compile_and_write(self, idl_filename, output_filenames): |
| 106 interface_name = idl_filename_to_interface_name(idl_filename) | 106 interface_name = idl_filename_to_interface_name(idl_filename) |
| 107 idl_pickle_filename = os.path.join(self.output_directory, | 107 idl_pickle_filename = os.path.join(self.output_directory, |
| 108 '%s_globals.pickle' % interface_name) | 108 '%s_globals.pickle' % interface_name) |
| 109 definitions = self.reader.read_idl_definitions(idl_filename) | 109 definitions = self.reader.read_idl_definitions(idl_filename) |
| 110 output_code_list = self.code_generator.generate_code(definitions, | 110 component = idl_filename_to_component(idl_filename) |
| 111 |
| 112 output_code_list = self.code_generator.generate_code(definitions[compone
nt], |
| 111 interface_name, | 113 interface_name, |
| 112 idl_pickle_filename
, | 114 idl_pickle_filename
, |
| 113 self.only_if_change
d) | 115 self.only_if_change
d) |
| 114 | 116 |
| 115 # TODO(terry): Temporary to disable code generating an IDL. | 117 # TODO(terry): Temporary to disable code generating an IDL. |
| 116 base_idl_filename = os.path.basename(idl_filename) | 118 base_idl_filename = os.path.basename(idl_filename) |
| 117 if base_idl_filename in SKIP_IDL_FILES: | 119 if base_idl_filename in SKIP_IDL_FILES: |
| 118 print "----- Skipping %s -----" % base_idl_filename | 120 print "----- Skipping %s -----" % base_idl_filename |
| 119 else: | 121 else: |
| 120 for output_code, output_filename in zip(output_code_list, output_fil
enames): | 122 for output_code, output_filename in zip(output_code_list, output_fil
enames): |
| 121 write_file(output_code, output_filename, self.only_if_changed) | 123 write_file(output_code, output_filename, self.only_if_changed) |
| 122 | 124 |
| 123 def generate_global_and_write(self, global_pickle_directories, output_filena
mes): | 125 def generate_global_and_write(self, global_entries, output_filenames): |
| 124 output_code_list = self.code_generator.generate_globals(global_pickle_di
rectories, | 126 output_code_list = self.code_generator.generate_globals(global_entries) |
| 125 self.output_dire
ctory) | |
| 126 for output_code, output_filename in zip(output_code_list, output_filenam
es): | 127 for output_code, output_filename in zip(output_code_list, output_filenam
es): |
| 127 write_file(output_code, output_filename, self.only_if_changed) | 128 write_file(output_code, output_filename, self.only_if_changed) |
| 128 | 129 |
| 130 def generate_dart_blink_and_write(self, global_entries, output_filename): |
| 131 output_code = self.code_generator.generate_dart_blink(global_entries) |
| 132 write_file(output_code, output_filename, self.only_if_changed) |
| 133 |
| 129 @abc.abstractmethod | 134 @abc.abstractmethod |
| 130 def compile_file(self, idl_filename): | 135 def compile_file(self, idl_filename): |
| 131 pass | 136 pass |
| OLD | NEW |