Chromium Code Reviews| OLD | NEW |
|---|---|
| 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)) |
| OLD | NEW |