| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #import('dart:io'); | 5 #import('dart:io'); |
| 6 #import('dart:uri'); | 6 #import('dart:uri'); |
| 7 | 7 |
| 8 #import('../../lib/compiler/implementation/util/uri_extras.dart'); | 8 #import('../../lib/compiler/implementation/util/uri_extras.dart'); |
| 9 #import('../../lib/compiler/implementation/filenames.dart'); | 9 #import('../../lib/compiler/implementation/filenames.dart'); |
| 10 | 10 |
| 11 main() { | 11 main() { |
| 12 List<String> arguments = new Options().arguments; | 12 List<String> arguments = new Options().arguments; |
| 13 Uri cwd = getCurrentDirectory(); | 13 Uri cwd = getCurrentDirectory(); |
| 14 String productDir = appendSlash(nativeToUriPath(arguments[0])); | 14 String productDir = appendSlash(nativeToUriPath(arguments[0])); |
| 15 String dartVmPath = nativeToUriPath(arguments[1]); | 15 String dartVmPath = nativeToUriPath(arguments[1]); |
| 16 String productionName = nativeToUriPath(arguments[2]); | 16 String productionName = nativeToUriPath(arguments[2]); |
| 17 String developerName = nativeToUriPath(arguments[3]); | 17 String developerName = nativeToUriPath(arguments[3]); |
| 18 String dartDir = appendSlash(nativeToUriPath(arguments[4])); | 18 String dartdocName = nativeToUriPath(arguments[4]); |
| 19 String dartDir = appendSlash(nativeToUriPath(arguments[5])); |
| 19 | 20 |
| 20 Uri dartUri = cwd.resolve(dartDir); | 21 Uri dartUri = cwd.resolve(dartDir); |
| 21 Uri productUri = cwd.resolve(productDir); | 22 Uri productUri = cwd.resolve(productDir); |
| 22 | 23 |
| 23 Uri dartVmUri = productUri.resolve(dartVmPath); | 24 Uri dartVmUri = productUri.resolve(dartVmPath); |
| 24 Uri productionUri = productUri.resolve(arguments[2]); | 25 Uri productionUri = productUri.resolve(arguments[2]); |
| 25 Uri developerUri = productUri.resolve(arguments[3]); | 26 Uri developerUri = productUri.resolve(arguments[3]); |
| 26 List<String> productionScript = buildScript(dartUri, dartVmUri, ''); | 27 Uri dartdocUri = productUri.resolve(arguments[4]); |
| 27 List<String> developerScript = buildScript(dartUri, dartVmUri, | |
| 28 ' --enable_checked_mode'); | |
| 29 | 28 |
| 29 List<String> productionScript = buildScript( |
| 30 'dart2js-production', |
| 31 dartUri, dartVmUri, |
| 32 'lib/compiler/implementation/dart2js.dart', ''); |
| 30 writeScript(productionUri, productionScript); | 33 writeScript(productionUri, productionScript); |
| 34 |
| 35 List<String> developerScript = buildScript( |
| 36 'dart2js-developer', |
| 37 dartUri, dartVmUri, |
| 38 'lib/compiler/implementation/dart2js.dart', ' --enable_checked_mode'); |
| 31 writeScript(developerUri, developerScript); | 39 writeScript(developerUri, developerScript); |
| 40 |
| 41 List<String> dartdocScript = buildScript( |
| 42 'dartdoc', |
| 43 dartUri, dartVmUri, |
| 44 'lib/dartdoc/dartdoc.dart', ''); |
| 45 writeScript(dartdocUri, dartdocScript); |
| 32 } | 46 } |
| 33 | 47 |
| 34 writeScript(Uri uri, List<String> scripts) { | 48 writeScript(Uri uri, List<String> scripts) { |
| 35 String unixScript = scripts[0]; | 49 String unixScript = scripts[0]; |
| 36 String batFile = scripts[1]; | 50 String batFile = scripts[1]; |
| 37 var f = new File(uriPathToNative(uri.path)); | 51 var f = new File(uriPathToNative(uri.path)); |
| 38 var stream = f.openSync(FileMode.WRITE); | 52 var stream = f.openSync(FileMode.WRITE); |
| 39 try { | 53 try { |
| 40 stream.writeStringSync(unixScript); | 54 stream.writeStringSync(unixScript); |
| 41 } finally { | 55 } finally { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 55 if (result.exitCode != 0) { | 69 if (result.exitCode != 0) { |
| 56 print(result.stdout); | 70 print(result.stdout); |
| 57 print(result.stderr); | 71 print(result.stderr); |
| 58 exit(result.exitCode); | 72 exit(result.exitCode); |
| 59 } | 73 } |
| 60 } | 74 } |
| 61 Process.run('/bin/chmod', ['+x', uri.path]).then(onExit); | 75 Process.run('/bin/chmod', ['+x', uri.path]).then(onExit); |
| 62 } | 76 } |
| 63 } | 77 } |
| 64 | 78 |
| 65 List<String> buildScript(Uri dartUri, Uri dartVmLocation, String options) { | 79 List<String> buildScript(String name, |
| 66 Uri dart2jsUri = dartUri.resolve('lib/compiler/implementation/dart2js.dart'); | 80 Uri dartUri, Uri dartVmLocation, |
| 67 String dart2jsPath = relativize(dartVmLocation, dart2jsUri); | 81 String entrypoint, String options) { |
| 68 String dart2jsPathWin = dart2jsPath.replaceAll("/", "\\"); | 82 Uri uri = dartUri.resolve(entrypoint); |
| 83 String path = relativize(dartVmLocation, uri); |
| 84 String pathWin = path.replaceAll("/", "\\"); |
| 69 | 85 |
| 70 print('dartUri = $dartUri'); | 86 print('dartUri = $dartUri'); |
| 71 print('dartVmLocation = $dartVmLocation'); | 87 print('dartVmLocation = $dartVmLocation'); |
| 72 print('dart2jsUri = $dart2jsUri'); | 88 print('${name}Uri = $uri'); |
| 73 print('dart2jsPath = $dart2jsPath'); | 89 print('${name}Path = $path'); |
| 74 print('dart2jsPathWin = $dart2jsPathWin'); | 90 print('${name}PathWin = $pathWin'); |
| 75 | 91 |
| 76 // Tell the VM to grow the heap more aggressively. This should only | 92 // Tell the VM to grow the heap more aggressively. This should only |
| 77 // be necessary temporarily until the VM is better at detecting how | 93 // be necessary temporarily until the VM is better at detecting how |
| 78 // applications use memory. | 94 // applications use memory. |
| 79 // TODO(ahe): Remove this option. | 95 // TODO(ahe): Remove this option. |
| 80 options = ' --heap_growth_rate=32$options'; | 96 options = ' --heap_growth_rate=32$options'; |
| 81 | 97 |
| 82 return [ | 98 return [ |
| 83 ''' | 99 ''' |
| 84 #!/bin/sh | 100 #!/bin/sh |
| 85 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 101 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 86 # for details. All rights reserved. Use of this source code is governed by a | 102 # for details. All rights reserved. Use of this source code is governed by a |
| 87 # BSD-style license that can be found in the LICENSE file. | 103 # BSD-style license that can be found in the LICENSE file. |
| 88 | 104 |
| 89 BIN_DIR=`dirname \$0` | 105 BIN_DIR=`dirname \$0` |
| 90 exec \$BIN_DIR/dart$options \$BIN_DIR/$dart2jsPath "\$@" | 106 exec \$BIN_DIR/dart$options \$BIN_DIR/$path "\$@" |
| 91 ''', | 107 ''', |
| 92 ''' | 108 ''' |
| 93 @echo off | 109 @echo off |
| 94 REM Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 110 REM Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 95 REM for details. All rights reserved. Use of this source code is governed by a | 111 REM for details. All rights reserved. Use of this source code is governed by a |
| 96 REM BSD-style license that can be found in the LICENSE file. | 112 REM BSD-style license that can be found in the LICENSE file. |
| 97 | 113 |
| 98 set SCRIPTPATH=%~dp0 | 114 set SCRIPTPATH=%~dp0 |
| 99 | 115 |
| 100 REM Does the path have a trailing slash? If so, remove it. | 116 REM Does the path have a trailing slash? If so, remove it. |
| 101 if %SCRIPTPATH:~-1%==\ set SCRIPTPATH=%SCRIPTPATH:~0,-1% | 117 if %SCRIPTPATH:~-1%==\ set SCRIPTPATH=%SCRIPTPATH:~0,-1% |
| 102 | 118 |
| 103 set arguments=%* | 119 set arguments=%* |
| 104 | 120 |
| 105 "%SCRIPTPATH%\dart.exe"$options "%SCRIPTPATH%$dart2jsPathWin" %arguments% | 121 "%SCRIPTPATH%\dart.exe"$options "%SCRIPTPATH%$pathWin" %arguments% |
| 106 '''.replaceAll('\n', '\r\n')]; | 122 '''.replaceAll('\n', '\r\n')]; |
| 107 } | 123 } |
| OLD | NEW |