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

Side by Side Diff: frog/scripts/bootstrap/frogsh_bootstrap_wrapper.py

Issue 9610002: remove node.js dependency by running the frog compiler in (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: updated test_options Created 8 years, 9 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 # Copyright 2011 Google Inc. All Rights Reserved. 1 # Copyright 2011 Google Inc. All Rights Reserved.
2 2
3 import os 3 import os
4 import platform 4 import platform
5 import shutil 5 import shutil
6 import stat 6 import stat
7 import sys 7 import sys
8 8
9 HOME = os.path.dirname(os.path.realpath(__file__)) 9 HOME = os.path.dirname(os.path.realpath(__file__))
10 HOME = os.path.join(HOME, os.pardir, os.pardir) 10 HOME = os.path.join(HOME, os.pardir, os.pardir)
11 11
12 FROGSH_FALLBACK = """#!/bin/sh
13 echo -en "\033[31mERROR\033[0m: Building frogsh in 'debug' mode requires "
14 echo "building the dart"
15 echo "runtime in 'release' mode. Retry building frogsh as follows:"
16 echo " > rm $0"
17 echo " > ./tools/build.py -m release runtime"
18 echo " > ./tools/build.py -m debug frogsh"
19 exit 1
20 """
21
22 sys.path.append(HOME) 12 sys.path.append(HOME)
23 import frog 13 import frog
24 14
15 # Runs frog.dart on the dart vm to compile frogpad.dart to frogpad.js
25 def main(args): 16 def main(args):
26 product_dir = args[1] 17 product_dir = args[1]
27 js_out = os.path.join(product_dir, 'frog', 'bin', 'frogsh')
28 vm = os.path.join(product_dir, 'dart') 18 vm = os.path.join(product_dir, 'dart')
29 id = platform.system() 19 frogpad_dart = os.path.join(product_dir, '..', '..',
30 if id == 'Windows' or id == 'Microsoft': 20 'tools', 'testing', 'frogpad', 'frogpad.dart')
31 vm = vm + '.exe' 21 frogpad_js = os.path.join(product_dir, 'frog', 'bin', 'frogpad.js')
32 shutil.copy(os.path.join(HOME, 'scripts', 'bootstrap', 'frogsh.bat'),
Emily Fortuna 2012/03/06 00:37:52 We don't have a DRT replacement for Windows yet, s
33 js_out + '.bat')
34 frog_args = ['frog.py', '--vm=' + vm,
35 '--js_cmd=node --crankshaft',
36 '--',
37 '--out=' + js_out, 'minfrog.dart']
38 22
39 # TODO(ngeoffray): Compile frogsh without checks integrated. 23 if not os.path.exists(vm):
40 # if js_out.find('Release') != -1: 24 raise Exception("cannot find dart vm '%s'" % vm)
41 exit_code = frog.main(frog_args) 25
26 args = ['frog.py',
27 '--vm=' + vm,
28 '--',
29 '--out=' + frogpad_js,
30 frogpad_dart]
31
32 exit_code = frog.main(args)
42 if exit_code: 33 if exit_code:
43 if js_out.find('Release') != -1: 34 return exit_code
44 return exit_code
45 else:
46 with open(js_out, 'w') as f:
47 f.write(FROGSH_FALLBACK)
48 35
49 os.chmod(js_out, stat.S_IXUSR | stat.S_IXGRP | stat.S_IRUSR | 36 if not os.path.exists(frogpad_js):
37 raise Exception("didn't generate '%s'" % frogpad_js)
38
39 os.chmod(frogpad_js, stat.S_IXUSR | stat.S_IXGRP | stat.S_IRUSR |
50 stat.S_IRGRP | stat.S_IWUSR) 40 stat.S_IRGRP | stat.S_IWUSR)
51 return 0 41 return 0
52 42
53 43
54 if __name__ == '__main__': 44 if __name__ == '__main__':
55 sys.exit(main(sys.argv)) 45 sys.exit(main(sys.argv))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698