Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: tools/dom/scripts/dartdomgenerator.py

Issue 450693005: Eliminate the old non blink code paths from idl generation (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove DART_USE_BLINK from templates Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/dom/scripts/go.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 """This is the entry point to create Dart APIs from the IDL database.""" 6 """This is the entry point to create Dart APIs from the IDL database."""
7 7
8 import css_code_generator 8 import css_code_generator
9 import dartgenerator 9 import dartgenerator
10 import database 10 import database
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 def LoadDatabase(database_dir, use_database_cache): 45 def LoadDatabase(database_dir, use_database_cache):
46 common_database = database.Database(database_dir) 46 common_database = database.Database(database_dir)
47 if use_database_cache: 47 if use_database_cache:
48 common_database.LoadFromCache() 48 common_database.LoadFromCache()
49 else: 49 else:
50 common_database.Load() 50 common_database.Load()
51 return common_database 51 return common_database
52 52
53 def GenerateFromDatabase(common_database, dart2js_output_dir, 53 def GenerateFromDatabase(common_database, dart2js_output_dir,
54 dartium_output_dir, update_dom_metadata=False, 54 dartium_output_dir, update_dom_metadata=False):
55 dart_use_blink=False):
56 current_dir = os.path.dirname(__file__) 55 current_dir = os.path.dirname(__file__)
57 auxiliary_dir = os.path.join(current_dir, '..', 'src') 56 auxiliary_dir = os.path.join(current_dir, '..', 'src')
58 template_dir = os.path.join(current_dir, '..', 'templates') 57 template_dir = os.path.join(current_dir, '..', 'templates')
59 58
60 generator = dartgenerator.DartGenerator() 59 generator = dartgenerator.DartGenerator()
61 generator.LoadAuxiliary(auxiliary_dir) 60 generator.LoadAuxiliary(auxiliary_dir)
62 61
63 generator.FilterMembersWithUnidentifiedTypes(common_database) 62 generator.FilterMembersWithUnidentifiedTypes(common_database)
64 webkit_database = common_database.Clone() 63 webkit_database = common_database.Clone()
65 64
(...skipping 29 matching lines...) Expand all
95 interface_generator.Generate() 94 interface_generator.Generate()
96 95
97 generator.Generate(webkit_database, common_database, generate_interface) 96 generator.Generate(webkit_database, common_database, generate_interface)
98 97
99 dart_library_emitter.EmitLibraries(auxiliary_dir) 98 dart_library_emitter.EmitLibraries(auxiliary_dir)
100 99
101 if dart2js_output_dir: 100 if dart2js_output_dir:
102 template_paths = ['html/dart2js', 'html/impl', 'html/interface', ''] 101 template_paths = ['html/dart2js', 'html/impl', 'html/interface', '']
103 template_loader = TemplateLoader(template_dir, 102 template_loader = TemplateLoader(template_dir,
104 template_paths, 103 template_paths,
105 {'DARTIUM': False, 'DART2JS': True, 104 {'DARTIUM': False, 'DART2JS': True})
106 'DART_USE_BLINK' : False})
107 backend_options = GeneratorOptions( 105 backend_options = GeneratorOptions(
108 template_loader, webkit_database, type_registry, renamer, 106 template_loader, webkit_database, type_registry, renamer,
109 metadata) 107 metadata)
110 backend_factory = lambda interface:\ 108 backend_factory = lambda interface:\
111 Dart2JSBackend(interface, backend_options) 109 Dart2JSBackend(interface, backend_options)
112 110
113 dart_output_dir = os.path.join(dart2js_output_dir, 'dart') 111 dart_output_dir = os.path.join(dart2js_output_dir, 'dart')
114 dart_libraries = DartLibraries( 112 dart_libraries = DartLibraries(
115 HTML_LIBRARY_NAMES, template_loader, 'dart2js', dart2js_output_dir) 113 HTML_LIBRARY_NAMES, template_loader, 'dart2js', dart2js_output_dir)
116 114
117 RunGenerator(dart_libraries, dart_output_dir, 115 RunGenerator(dart_libraries, dart_output_dir,
118 template_loader, backend_factory) 116 template_loader, backend_factory)
119 117
120 if dartium_output_dir: 118 if dartium_output_dir:
121 template_paths = ['html/dartium', 'html/impl', 'html/interface', ''] 119 template_paths = ['html/dartium', 'html/impl', 'html/interface', '']
122 template_loader = TemplateLoader(template_dir, 120 template_loader = TemplateLoader(template_dir,
123 template_paths, 121 template_paths,
124 {'DARTIUM': True, 'DART2JS': False, 122 {'DARTIUM': True, 'DART2JS': False})
125 'DART_USE_BLINK' : dart_use_blink})
126 backend_options = GeneratorOptions( 123 backend_options = GeneratorOptions(
127 template_loader, webkit_database, type_registry, renamer, 124 template_loader, webkit_database, type_registry, renamer,
128 metadata) 125 metadata)
129 cpp_output_dir = os.path.join(dartium_output_dir, 'cpp') 126 cpp_output_dir = os.path.join(dartium_output_dir, 'cpp')
130 cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir) 127 cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir)
131 dart_output_dir = os.path.join(dartium_output_dir, 'dart') 128 dart_output_dir = os.path.join(dartium_output_dir, 'dart')
132 native_library_emitter = \ 129 native_library_emitter = \
133 GetNativeLibraryEmitter(emitters, template_loader, 130 GetNativeLibraryEmitter(emitters, template_loader,
134 dartium_output_dir, dart_output_dir, 131 dartium_output_dir, dart_output_dir,
135 auxiliary_dir) 132 auxiliary_dir)
136 backend_factory = lambda interface:\ 133 backend_factory = lambda interface:\
137 DartiumBackend(interface, native_library_emitter, 134 DartiumBackend(interface, native_library_emitter,
138 cpp_library_emitter, backend_options, dart_use_blink) 135 cpp_library_emitter, backend_options)
139 dart_libraries = DartLibraries( 136 dart_libraries = DartLibraries(
140 HTML_LIBRARY_NAMES, template_loader, 'dartium', dartium_output_dir) 137 HTML_LIBRARY_NAMES, template_loader, 'dartium', dartium_output_dir)
141 RunGenerator(dart_libraries, dart_output_dir, 138 RunGenerator(dart_libraries, dart_output_dir,
142 template_loader, backend_factory) 139 template_loader, backend_factory)
143 cpp_library_emitter.EmitDerivedSources( 140 cpp_library_emitter.EmitDerivedSources(
144 template_loader.Load('cpp_derived_sources.template'), 141 template_loader.Load('cpp_derived_sources.template'),
145 dartium_output_dir) 142 dartium_output_dir)
146 cpp_library_emitter.EmitResolver( 143 cpp_library_emitter.EmitResolver(
147 template_loader.Load('cpp_resolver.template'), dartium_output_dir) 144 template_loader.Load('cpp_resolver.template'), dartium_output_dir)
148 cpp_library_emitter.EmitClassIdTable( 145 cpp_library_emitter.EmitClassIdTable(
(...skipping 30 matching lines...) Expand all
179 action='store_true', default=False, 176 action='store_true', default=False,
180 help='Rebuild the database from IDL using fremontcut.') 177 help='Rebuild the database from IDL using fremontcut.')
181 parser.add_option('--systems', dest='systems', 178 parser.add_option('--systems', dest='systems',
182 action='store', type='string', 179 action='store', type='string',
183 default='htmldart2js,htmldartium', 180 default='htmldart2js,htmldartium',
184 help='Systems to generate (htmldart2js, htmldartium)') 181 help='Systems to generate (htmldart2js, htmldartium)')
185 parser.add_option('--output-dir', dest='output_dir', 182 parser.add_option('--output-dir', dest='output_dir',
186 action='store', type='string', 183 action='store', type='string',
187 default=None, 184 default=None,
188 help='Directory to put the generated files') 185 help='Directory to put the generated files')
189 parser.add_option('--use-blink', dest='dart_use_blink',
190 action='store_true',
191 default=False,
192 help='''Delegate all native calls to dart:blink''')
193 parser.add_option('--use-database-cache', dest='use_database_cache', 186 parser.add_option('--use-database-cache', dest='use_database_cache',
194 action='store_true', 187 action='store_true',
195 default=False, 188 default=False,
196 help='''Use the cached database from the previous run to 189 help='''Use the cached database from the previous run to
197 improve startup performance''') 190 improve startup performance''')
198 parser.add_option('--update-dom-metadata', dest='update_dom_metadata', 191 parser.add_option('--update-dom-metadata', dest='update_dom_metadata',
199 action='store_true', 192 action='store_true',
200 default=False, 193 default=False,
201 help='''Update the metadata list of DOM APIs''') 194 help='''Update the metadata list of DOM APIs''')
202 (options, args) = parser.parse_args() 195 (options, args) = parser.parse_args()
(...skipping 15 matching lines...) Expand all
218 dartium_output_dir = os.path.join(output_dir, 'dartium') 211 dartium_output_dir = os.path.join(output_dir, 'dartium')
219 212
220 UpdateCssProperties() 213 UpdateCssProperties()
221 if options.rebuild: 214 if options.rebuild:
222 # Parse the IDL and create the database. 215 # Parse the IDL and create the database.
223 database = fremontcutbuilder.main(options.parallel) 216 database = fremontcutbuilder.main(options.parallel)
224 else: 217 else:
225 # Load the previously generated database. 218 # Load the previously generated database.
226 database = LoadDatabase(database_dir, options.use_database_cache) 219 database = LoadDatabase(database_dir, options.use_database_cache)
227 GenerateFromDatabase(database, dart2js_output_dir, dartium_output_dir, 220 GenerateFromDatabase(database, dart2js_output_dir, dartium_output_dir,
228 options.update_dom_metadata, options.dart_use_blink) 221 options.update_dom_metadata)
229 222
230 if 'htmldart2js' in systems: 223 if 'htmldart2js' in systems:
231 _logger.info('Generating dart2js single files.') 224 _logger.info('Generating dart2js single files.')
232 for library_name in HTML_LIBRARY_NAMES: 225 for library_name in HTML_LIBRARY_NAMES:
233 GenerateSingleFile( 226 GenerateSingleFile(
234 os.path.join(dart2js_output_dir, '%s_dart2js.dart' % library_name), 227 os.path.join(dart2js_output_dir, '%s_dart2js.dart' % library_name),
235 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dart2js')) 228 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dart2js'))
236 if 'htmldartium' in systems: 229 if 'htmldartium' in systems:
237 _logger.info('Generating dartium single files.') 230 _logger.info('Generating dartium single files.')
238 for library_name in HTML_LIBRARY_NAMES: 231 for library_name in HTML_LIBRARY_NAMES:
239 GenerateSingleFile( 232 GenerateSingleFile(
240 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name), 233 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name),
241 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dartium')) 234 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dartium'))
242 GenerateSingleFile( 235 GenerateSingleFile(
243 os.path.join(dartium_output_dir, '_blink_dartium.dart'), 236 os.path.join(dartium_output_dir, '_blink_dartium.dart'),
244 os.path.join('..', '..', '..', 'sdk', 'lib', '_blink', 'dartium')) 237 os.path.join('..', '..', '..', 'sdk', 'lib', '_blink', 'dartium'))
245 238
246 if __name__ == '__main__': 239 if __name__ == '__main__':
247 sys.exit(main()) 240 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | tools/dom/scripts/go.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698