OLD | NEW |
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 dartgenerator | 8 import dartgenerator |
9 import database | 9 import database |
10 import fremontcutbuilder | 10 import fremontcutbuilder |
11 import logging.config | 11 import logging.config |
12 import multiemitter | 12 import multiemitter |
13 import optparse | 13 import optparse |
14 import os | 14 import os |
15 import shutil | 15 import shutil |
16 import subprocess | 16 import subprocess |
17 import sys | 17 import sys |
18 from generator import TypeRegistry | 18 from generator import TypeRegistry |
19 from htmleventgenerator import HtmlEventGenerator | 19 from htmleventgenerator import HtmlEventGenerator |
20 from htmlrenamer import HtmlRenamer | 20 from htmlrenamer import HtmlRenamer |
21 from systemhtml import DartLibraryEmitter, Dart2JSBackend,\ | 21 from systemhtml import DartLibraryEmitter, Dart2JSBackend,\ |
22 HtmlDartInterfaceGenerator, DartLibrary, DartLibraries | 22 HtmlDartInterfaceGenerator, DartLibrary, DartLibraries |
23 from systemnative import CPPLibraryEmitter, DartiumBackend | 23 from systemnative import CPPLibraryEmitter, DartiumBackend |
24 from templateloader import TemplateLoader | 24 from templateloader import TemplateLoader |
25 | 25 |
26 _logger = logging.getLogger('dartdomgenerator') | 26 _logger = logging.getLogger('dartdomgenerator') |
27 | 27 |
28 _libraries = ['html', 'svg', 'web_audio'] | 28 _libraries = ['html', 'indexed_db', 'svg', 'web_audio'] |
29 | 29 |
30 class GeneratorOptions(object): | 30 class GeneratorOptions(object): |
31 def __init__(self, templates, database, type_registry, renamer): | 31 def __init__(self, templates, database, type_registry, renamer): |
32 self.templates = templates | 32 self.templates = templates |
33 self.database = database | 33 self.database = database |
34 self.type_registry = type_registry | 34 self.type_registry = type_registry |
35 self.renamer = renamer | 35 self.renamer = renamer |
36 | 36 |
37 # TODO(vsm): Remove once we fix Dartium to pass in the database directly. | 37 # TODO(vsm): Remove once we fix Dartium to pass in the database directly. |
38 def Generate(database_dir, use_database_cache, dart2js_output_dir=None, | 38 def Generate(database_dir, use_database_cache, dart2js_output_dir=None, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 emitters = multiemitter.MultiEmitter() | 71 emitters = multiemitter.MultiEmitter() |
72 renamer = HtmlRenamer(webkit_database) | 72 renamer = HtmlRenamer(webkit_database) |
73 type_registry = TypeRegistry(webkit_database, renamer) | 73 type_registry = TypeRegistry(webkit_database, renamer) |
74 | 74 |
75 def RunGenerator(dart_libraries, dart_output_dir, | 75 def RunGenerator(dart_libraries, dart_output_dir, |
76 template_loader, backend_factory): | 76 template_loader, backend_factory): |
77 options = GeneratorOptions( | 77 options = GeneratorOptions( |
78 template_loader, webkit_database, type_registry, renamer) | 78 template_loader, webkit_database, type_registry, renamer) |
79 dart_library_emitter = DartLibraryEmitter( | 79 dart_library_emitter = DartLibraryEmitter( |
80 emitters, dart_output_dir, dart_libraries) | 80 emitters, dart_output_dir, dart_libraries) |
81 event_generator = HtmlEventGenerator(webkit_database, template_loader) | 81 event_generator = HtmlEventGenerator(webkit_database, renamer, |
| 82 template_loader) |
82 | 83 |
83 def generate_interface(interface): | 84 def generate_interface(interface): |
84 backend = backend_factory(interface) | 85 backend = backend_factory(interface) |
85 interface_generator = HtmlDartInterfaceGenerator( | 86 interface_generator = HtmlDartInterfaceGenerator( |
86 options, dart_library_emitter, event_generator, interface, backend) | 87 options, dart_library_emitter, event_generator, interface, backend) |
87 interface_generator.Generate() | 88 interface_generator.Generate() |
88 | 89 |
89 generator.Generate(webkit_database, common_database, generate_interface) | 90 generator.Generate(webkit_database, common_database, generate_interface) |
90 | 91 |
91 dart_library_emitter.EmitLibraries(auxiliary_dir) | 92 dart_library_emitter.EmitLibraries(auxiliary_dir) |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 '../../%s/dart2js' % library_name) | 213 '../../%s/dart2js' % library_name) |
213 if 'htmldartium' in systems: | 214 if 'htmldartium' in systems: |
214 _logger.info('Generating dartium single files.') | 215 _logger.info('Generating dartium single files.') |
215 for library_name in _libraries: | 216 for library_name in _libraries: |
216 GenerateSingleFile( | 217 GenerateSingleFile( |
217 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name), | 218 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name), |
218 '../../%s/dartium' % library_name) | 219 '../../%s/dartium' % library_name) |
219 | 220 |
220 if __name__ == '__main__': | 221 if __name__ == '__main__': |
221 sys.exit(main()) | 222 sys.exit(main()) |
OLD | NEW |