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

Unified Diff: lib/html/scripts/dartdomgenerator.py

Issue 10987019: Refactor file paths handling in generator. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | lib/html/scripts/dartgenerator.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/html/scripts/dartdomgenerator.py
diff --git a/lib/html/scripts/dartdomgenerator.py b/lib/html/scripts/dartdomgenerator.py
index 469d49159eec1254220db4e1f04ffeddbf5f08c7..52d45551e39fab49e8d119289269b7ea23d4f69b 100755
--- a/lib/html/scripts/dartdomgenerator.py
+++ b/lib/html/scripts/dartdomgenerator.py
@@ -18,9 +18,10 @@ from generator import TypeRegistry
from htmlrenamer import HtmlRenamer
from systembase import GeneratorOptions
from systemdart2js import Dart2JSSystem
-from systemhtml import HtmlInterfacesSystem, HtmlDart2JSSystem
+from systemhtml import DartLibraryGenerator, HtmlInterfacesSystem,\
+ HtmlDart2JSSystem
from systeminterface import InterfacesSystem
-from systemnative import NativeImplementationSystem
+from systemnative import CPPLibraryGenerator, NativeImplementationSystem
from templateloader import TemplateLoader
_logger = logging.getLogger('dartdomgenerator')
@@ -68,33 +69,55 @@ def Generate(database_dir, use_database_cache, dart2js_output_dir=None,
renamer = HtmlRenamer(webkit_database)
type_registry = TypeRegistry(webkit_database, renamer)
- def CreateGeneratorOptions(template_paths, conditions, output_dir):
- template_loader = TemplateLoader(template_dir, template_paths, conditions)
- return GeneratorOptions(
- template_loader, webkit_database, emitters, type_registry, renamer,
- output_dir, auxiliary_dir)
-
- def Generate(backend, output_dir):
- options = CreateGeneratorOptions(
- ['html/interface', 'html/impl', 'html', ''], {}, output_dir)
- html_system = HtmlInterfacesSystem(options, backend)
- generator.Generate(webkit_database, html_system,
- super_database=common_database,
- webkit_renames=_webkit_renames)
+ def RunGenerator(dart_library_template, dart_output_dir, dart_library_path,
+ backend):
+ template_loader = TemplateLoader(
+ template_dir, ['html/interface', 'html/impl', 'html', ''], {})
+ options = GeneratorOptions(
+ template_loader, webkit_database, type_registry, renamer)
+ dart_library_generator = DartLibraryGenerator(
+ emitters, dart_library_template, dart_output_dir)
+ html_system = HtmlInterfacesSystem(options, dart_library_generator, backend)
+ generator.Generate(
+ webkit_database, html_system, common_database, _webkit_renames)
+ dart_library_generator.GenerateLibrary(dart_library_path, auxiliary_dir)
vsm 2012/09/25 17:27:45 It's confusing to use "Generate" on both of these
podivilov1 2012/09/26 09:54:06 Done.
if dart2js_output_dir:
- options = CreateGeneratorOptions(
- ['html/dart2js', 'html/impl', 'html', ''],
- {'DARTIUM': False, 'DART2JS': True}, dart2js_output_dir)
- backend = HtmlDart2JSSystem(options)
- Generate(backend, dart2js_output_dir)
+ template_loader = TemplateLoader(template_dir,
+ ['html/dart2js', 'html/impl', 'html', ''],
+ {'DARTIUM': False, 'DART2JS': True})
+ backend_options = GeneratorOptions(
+ template_loader, webkit_database, type_registry, renamer)
+ backend = HtmlDart2JSSystem(backend_options)
+
+ dart_library_template = template_loader.Load('html_dart2js.darttemplate')
+ dart_output_dir = os.path.join(dart2js_output_dir, 'dart')
+ dart_library_path = os.path.join(dart2js_output_dir, 'html_dart2js.dart')
+
+ RunGenerator(
+ dart_library_template, dart_output_dir, dart_library_path, backend)
if dartium_output_dir:
- options = CreateGeneratorOptions(
- ['html/dartium', 'html/impl', ''],
- {'DARTIUM': True, 'DART2JS': False}, dartium_output_dir)
- backend = NativeImplementationSystem(options)
- Generate(backend, dartium_output_dir)
+ template_loader = TemplateLoader(template_dir,
+ ['html/dartium', 'html/impl', ''],
+ {'DARTIUM': True, 'DART2JS': False})
+ backend_options = GeneratorOptions(
+ template_loader, webkit_database, type_registry, renamer)
+ cpp_output_dir = os.path.join(dartium_output_dir, 'cpp')
+ cpp_library_generator = CPPLibraryGenerator(emitters, cpp_output_dir)
+ backend = NativeImplementationSystem(backend_options, cpp_library_generator)
+
+ dart_library_template = template_loader.Load('html_dartium.darttemplate')
+ dart_output_dir = os.path.join(dartium_output_dir, 'dart')
+ dart_library_path = os.path.join(dartium_output_dir, 'html_dartium.dart')
+
+ RunGenerator(
+ dart_library_template, dart_output_dir, dart_library_path, backend)
+ cpp_library_generator.GenerateDerivedSources(
+ template_loader.Load('cpp_derived_sources.template'),
+ dartium_output_dir)
+ cpp_library_generator.GenerateResolver(
+ template_loader.Load('cpp_resolver.template'), dartium_output_dir)
_logger.info('Flush...')
emitters.Flush()
« no previous file with comments | « no previous file | lib/html/scripts/dartgenerator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698