OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env 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 script builds and then uploads the Dart client sample app to AppEngine, | 6 # This script builds and then uploads the Dart client sample app to AppEngine, |
7 # where it is accessible by visiting http://dart.googleplex.com. | 7 # where it is accessible by visiting http://dart.googleplex.com. |
8 import os | 8 import os |
9 import subprocess | 9 import subprocess |
10 import sys | 10 import sys |
11 | 11 |
12 from os.path import abspath, basename, dirname, exists, join, split, relpath | 12 from os.path import abspath, basename, dirname, exists, join, split, relpath |
13 import base64, re, os, shutil, subprocess, sys, tempfile, optparse | 13 import base64, re, os, shutil, subprocess, sys, tempfile, optparse |
14 | 14 |
15 APP_PATH = os.getcwd() | 15 APP_PATH = os.getcwd() |
16 CLIENT_TOOLS_PATH = dirname(abspath(__file__)) | 16 CLIENT_TOOLS_PATH = dirname(abspath(__file__)) |
17 CLIENT_PATH = dirname(CLIENT_TOOLS_PATH) | 17 CLIENT_PATH = dirname(CLIENT_TOOLS_PATH) |
18 | 18 |
19 # Add the client tools directory so we can find htmlconverter.py. | 19 # Add the client tools directory so we can find htmlconverter.py. |
20 sys.path.append(CLIENT_TOOLS_PATH) | 20 sys.path.append(CLIENT_TOOLS_PATH) |
21 import htmlconverter | 21 import htmlconverter |
22 | 22 |
23 def convertOne(infile, options): | 23 def convertOne(infile, options): |
24 outDirBase = 'outcode' | 24 outDirBase = 'outcode' |
25 outfile = join(outDirBase, infile) | 25 outfile = join(outDirBase, infile) |
26 print 'converting %s to %s' % (infile, outfile) | 26 print 'converting %s to %s' % (infile, outfile) |
27 | 27 |
28 # TODO(jmesserly): this is a workaround for an OOM error in DartC | |
29 # See bug 5393264 | |
30 if options.optimize: | |
31 os.putenv('DART_JVMARGS', '-Xmx512m') | |
32 | |
33 if 'dart' in options.target: | 28 if 'dart' in options.target: |
34 htmlconverter.convertForDartium( | 29 htmlconverter.convertForDartium( |
35 infile, | 30 infile, |
36 outDirBase, | 31 outDirBase, |
37 outfile.replace('.html', '-dart.html'), | 32 outfile.replace('.html', '-dart.html'), |
38 options.verbose) | 33 options.verbose) |
39 if 'js' in options.target: | 34 if 'js' in options.target: |
40 htmlconverter.convertForChromium( | 35 htmlconverter.convertForChromium( |
41 infile, options.optimize, options.frog, options.dartc_extra_flags, | 36 infile, options.dartc_extra_flags, |
42 outfile.replace('.html', '-js.html'), | 37 outfile.replace('.html', '-js.html'), |
43 options.verbose) | 38 options.verbose) |
44 | 39 |
45 | 40 |
46 def Flags(): | 41 def Flags(): |
47 """ Consturcts a parser for extracting flags from the command line. """ | 42 """ Consturcts a parser for extracting flags from the command line. """ |
48 result = optparse.OptionParser() | 43 result = optparse.OptionParser() |
49 result.add_option("-t", "--target", | 44 result.add_option("-t", "--target", |
50 help="The target html to generate", | 45 help="The target html to generate", |
51 metavar="[js,dart]", | 46 metavar="[js,dart]", |
52 default='js,dart') | 47 default='js,dart') |
53 result.add_option("--frog", | |
54 help="Use frog compiler (default dartc)", | |
55 default=False, | |
56 action="store_true") | |
57 result.add_option("--optimize", | |
58 help="Use optimizer in dartc", | |
59 default=False, | |
60 action="store_true") | |
61 result.add_option("--verbose", | 48 result.add_option("--verbose", |
62 help="Print verbose output", | 49 help="Print verbose output", |
63 default=False, | 50 default=False, |
64 action="store_true") | 51 action="store_true") |
65 result.add_option("--dartc_extra_flags", | 52 result.add_option("--dartc_extra_flags", |
66 help="Additional flag text to pass to dartc", | 53 help="Additional flag text to pass to dartc", |
67 default="", | 54 default="", |
68 action="store") | 55 action="store") |
69 #result.set_usage("update.py input.html -o OUTDIR -t chromium,dartium") | 56 #result.set_usage("update.py input.html -o OUTDIR -t chromium,dartium") |
70 return result | 57 return result |
(...skipping 16 matching lines...) Expand all Loading... |
87 # parser.print_help() | 74 # parser.print_help() |
88 # return 1 | 75 # return 1 |
89 | 76 |
90 REL_APP_PATH = relpath(APP_PATH) | 77 REL_APP_PATH = relpath(APP_PATH) |
91 for file in getAllHtmlFiles(): | 78 for file in getAllHtmlFiles(): |
92 infile = join(REL_APP_PATH, file) | 79 infile = join(REL_APP_PATH, file) |
93 convertOne(infile, options) | 80 convertOne(infile, options) |
94 | 81 |
95 if __name__ == '__main__': | 82 if __name__ == '__main__': |
96 main() | 83 main() |
OLD | NEW |