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

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

Issue 254463006: This CL contains all of the changes for splitting off all of the native (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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/generator.py » ('j') | tools/dom/scripts/systemnative.py » ('J')
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 dartgenerator 8 import dartgenerator
9 import database 9 import database
10 import fremontcutbuilder 10 import fremontcutbuilder
11 import logging 11 import logging
12 import monitored 12 import monitored
13 import multiemitter 13 import multiemitter
14 import optparse 14 import optparse
15 import os 15 import os
16 import shutil 16 import shutil
17 import subprocess 17 import subprocess
18 import sys 18 import sys
19 from dartmetadata import DartMetadata 19 from dartmetadata import DartMetadata
20 from generator import TypeRegistry 20 from generator import TypeRegistry
21 from htmleventgenerator import HtmlEventGenerator 21 from htmleventgenerator import HtmlEventGenerator
22 from htmlrenamer import HtmlRenamer 22 from htmlrenamer import HtmlRenamer
23 from systemhtml import DartLibraryEmitter, Dart2JSBackend,\ 23 from systemhtml import DartLibraryEmitter, Dart2JSBackend,\
24 HtmlDartInterfaceGenerator, DartLibrary, DartLibraries,\ 24 HtmlDartInterfaceGenerator, DartLibrary, DartLibraries,\
25 HTML_LIBRARY_NAMES 25 HTML_LIBRARY_NAMES
26 from systemnative import CPPLibraryEmitter, DartiumBackend 26 from systemnative import CPPLibraryEmitter, DartiumBackend, \
27 GetNativeLibraryEmitter, EmitNativeLibrary, \
28 dart_use_blink
27 from templateloader import TemplateLoader 29 from templateloader import TemplateLoader
28 30
29 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..')) 31 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..'))
30 import utils 32 import utils
31 33
32 _logger = logging.getLogger('dartdomgenerator') 34 _logger = logging.getLogger('dartdomgenerator')
33 35
34 class GeneratorOptions(object): 36 class GeneratorOptions(object):
35 def __init__(self, templates, database, type_registry, renamer, 37 def __init__(self, templates, database, type_registry, renamer,
36 metadata): 38 metadata):
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 dart_libraries = DartLibraries( 112 dart_libraries = DartLibraries(
111 HTML_LIBRARY_NAMES, template_loader, 'dart2js', dart2js_output_dir) 113 HTML_LIBRARY_NAMES, template_loader, 'dart2js', dart2js_output_dir)
112 114
113 RunGenerator(dart_libraries, dart_output_dir, 115 RunGenerator(dart_libraries, dart_output_dir,
114 template_loader, backend_factory) 116 template_loader, backend_factory)
115 117
116 if dartium_output_dir: 118 if dartium_output_dir:
117 template_paths = ['html/dartium', 'html/impl', 'html/interface', ''] 119 template_paths = ['html/dartium', 'html/impl', 'html/interface', '']
118 template_loader = TemplateLoader(template_dir, 120 template_loader = TemplateLoader(template_dir,
119 template_paths, 121 template_paths,
120 {'DARTIUM': True, 'DART2JS': False}) 122 {'DARTIUM': True, 'DART2JS': False,
123 'DART_USE_BLINK' : dart_use_blink})
121 backend_options = GeneratorOptions( 124 backend_options = GeneratorOptions(
122 template_loader, webkit_database, type_registry, renamer, 125 template_loader, webkit_database, type_registry, renamer,
123 metadata) 126 metadata)
124 cpp_output_dir = os.path.join(dartium_output_dir, 'cpp') 127 cpp_output_dir = os.path.join(dartium_output_dir, 'cpp')
125 cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir) 128 cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir)
129 dart_output_dir = os.path.join(dartium_output_dir, 'dart')
130 native_library_emitter = \
131 GetNativeLibraryEmitter(emitters, template_loader,
132 dartium_output_dir, dart_output_dir,
133 auxiliary_dir)
126 backend_factory = lambda interface:\ 134 backend_factory = lambda interface:\
127 DartiumBackend(interface, cpp_library_emitter, backend_options) 135 DartiumBackend(interface, native_library_emitter,
128 136 cpp_library_emitter, backend_options)
129 dart_output_dir = os.path.join(dartium_output_dir, 'dart')
130 dart_libraries = DartLibraries( 137 dart_libraries = DartLibraries(
131 HTML_LIBRARY_NAMES, template_loader, 'dartium', dartium_output_dir) 138 HTML_LIBRARY_NAMES, template_loader, 'dartium', dartium_output_dir)
132
133 RunGenerator(dart_libraries, dart_output_dir, 139 RunGenerator(dart_libraries, dart_output_dir,
134 template_loader, backend_factory) 140 template_loader, backend_factory)
141 EmitNativeLibrary(native_library_emitter, auxiliary_dir)
135 cpp_library_emitter.EmitDerivedSources( 142 cpp_library_emitter.EmitDerivedSources(
136 template_loader.Load('cpp_derived_sources.template'), 143 template_loader.Load('cpp_derived_sources.template'),
137 dartium_output_dir) 144 dartium_output_dir)
138 cpp_library_emitter.EmitResolver( 145 cpp_library_emitter.EmitResolver(
139 template_loader.Load('cpp_resolver.template'), dartium_output_dir) 146 template_loader.Load('cpp_resolver.template'), dartium_output_dir)
140 cpp_library_emitter.EmitClassIdTable( 147 cpp_library_emitter.EmitClassIdTable(
141 webkit_database, dartium_output_dir, type_registry, renamer) 148 webkit_database, dartium_output_dir, type_registry, renamer)
142 emitters.Flush() 149 emitters.Flush()
143 150
144 if update_dom_metadata: 151 if update_dom_metadata:
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dart2js')) 223 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dart2js'))
217 if 'htmldartium' in systems: 224 if 'htmldartium' in systems:
218 _logger.info('Generating dartium single files.') 225 _logger.info('Generating dartium single files.')
219 for library_name in HTML_LIBRARY_NAMES: 226 for library_name in HTML_LIBRARY_NAMES:
220 GenerateSingleFile( 227 GenerateSingleFile(
221 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name), 228 os.path.join(dartium_output_dir, '%s_dartium.dart' % library_name),
222 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dartium')) 229 os.path.join('..', '..', '..', 'sdk', 'lib', library_name, 'dartium'))
223 230
224 if __name__ == '__main__': 231 if __name__ == '__main__':
225 sys.exit(main()) 232 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | tools/dom/scripts/generator.py » ('j') | tools/dom/scripts/systemnative.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698