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

Side by Side Diff: runtime/tools/create_snapshot_file.py

Issue 10823209: Add support for building the Dart VM for Android OS. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address cshapiro's review comments, pass 2 Created 8 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
4 # for details. All rights reserved. Use of this source code is governed by a 4 # for details. All rights reserved. Use of this source code is governed by a
5 # BSD-style license that can be found in the LICENSE file. 5 # BSD-style license that can be found in the LICENSE file.
6 6
7 # Script to create snapshot files. 7 # Script to create snapshot files.
8 8
9 import getopt 9 import getopt
10 import optparse 10 import optparse
11 import string 11 import string
12 import subprocess 12 import subprocess
13 import sys 13 import sys
14 import utils 14 import utils
15 15
16 16
17 HOST_OS = utils.GuessOS() 17 HOST_OS = utils.GuessOS()
18 HOST_CPUS = utils.GuessCpus() 18 HOST_CPUS = utils.GuessCpus()
19 19
20 20
21 def BuildOptions(): 21 def BuildOptions():
22 result = optparse.OptionParser() 22 result = optparse.OptionParser()
23 result.add_option("--executable", 23 result.add_option("--input_bin",
24 action="store", type="string", 24 action="store", type="string",
25 help="path to snapshot generator executable") 25 help="input file name of the snapshot in binary form")
26 result.add_option("--output_bin",
27 action="store", type="string",
28 help="output file name into which snapshot in binary form is generated")
29 result.add_option("--input_cc", 26 result.add_option("--input_cc",
30 action="store", type="string", 27 action="store", type="string",
31 help="input file name which contains the C buffer template") 28 help="input file name which contains the C buffer template")
32 result.add_option("--output", 29 result.add_option("--output",
33 action="store", type="string", 30 action="store", type="string",
34 help="output file name into which snapshot in C buffer form is generated") 31 help="output file name into which snapshot in C buffer form is generated")
35 result.add_option("--script",
36 action="store", type="string",
37 help="Dart script for which snapshot is to be generated")
38 result.add_option("--url_mapping",
39 default=[],
40 action="append",
41 help="mapping from url to file name, used when generating snapshots")
42 result.add_option("-v", "--verbose", 32 result.add_option("-v", "--verbose",
43 help='Verbose output.', 33 help='Verbose output.',
44 default=False, action="store_true") 34 default=False, action="store_true")
45 return result 35 return result
46 36
47 37
48 def ProcessOptions(options): 38 def ProcessOptions(options):
49 if not options.executable: 39 if not options.input_bin:
50 sys.stderr.write('--executable not specified\n') 40 sys.stderr.write('--input_bin not specified\n')
51 return False
52 if not options.output_bin:
53 sys.stderr.write('--output_bin not specified\n')
54 return False 41 return False
55 if not options.input_cc: 42 if not options.input_cc:
56 sys.stderr.write('--input_cc not specified\n') 43 sys.stderr.write('--input_cc not specified\n')
57 return False 44 return False
58 if not options.output: 45 if not options.output:
59 sys.stderr.write('--output not specified\n') 46 sys.stderr.write('--output not specified\n')
60 return False 47 return False
61 return True 48 return True
62 49
63 50
(...skipping 25 matching lines...) Expand all
89 (options, args) = parser.parse_args() 76 (options, args) = parser.parse_args()
90 if not ProcessOptions(options): 77 if not ProcessOptions(options):
91 parser.print_help() 78 parser.print_help()
92 return 1 79 return 1
93 80
94 # If there are additional arguments, report error and exit. 81 # If there are additional arguments, report error and exit.
95 if args: 82 if args:
96 parser.print_help() 83 parser.print_help()
97 return 1 84 return 1
98 85
99 # Setup arguments to the snapshot generator binary. 86 if not makeFile(options.output, options.input_cc, options.input_bin):
100 script_args = []
101
102 # First setup the snapshot output filename.
103 script_args.append(''.join([ "--snapshot=", options.output_bin ]))
104
105 # Next setup all url mapping options specified.
106 for url_arg in options.url_mapping:
107 url_mapping_argument = ''.join(["--url_mapping=", url_arg ])
108 script_args.append(url_mapping_argument)
109
110 # Finally append the script name if one is specified.
111 if options.script:
112 script_args.append(options.script)
113
114 # Construct command line to execute the snapshot generator binary and invoke.
115 command = [ options.executable ] + script_args
116 if options.verbose:
117 print ' '.join(command)
118 pipe = subprocess.Popen(command,
119 stdout=subprocess.PIPE,
120 stderr=subprocess.PIPE)
121 out, error = pipe.communicate()
122 if (pipe.returncode != 0):
123 print out, error
124 print "Snapshot generation failed"
125 print "(Command was: '", ' '.join(command), "')"
126 return -1
127
128 if not makeFile(options.output, options.input_cc, options.output_bin):
129 print "Unable to generate snapshot in C buffer form" 87 print "Unable to generate snapshot in C buffer form"
130 return -1 88 return -1
131 89
132 return 0 90 return 0
133 91
134 if __name__ == '__main__': 92 if __name__ == '__main__':
135 sys.exit(Main()) 93 sys.exit(Main())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698