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

Side by Side Diff: dart/utils/compiler/build_helper.dart

Issue 11421126: Don't build dart2js scripts. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years 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
« no previous file with comments | « no previous file | dart/utils/compiler/compiler.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'dart:io';
6 import 'dart:uri';
7
8 import '../../sdk/lib/_internal/compiler/implementation/util/uri_extras.dart';
9 import '../../sdk/lib/_internal/compiler/implementation/filenames.dart';
10
11 main() {
12 List<String> arguments = new Options().arguments;
13 Uri cwd = getCurrentDirectory();
14 String productDir = appendSlash(nativeToUriPath(arguments[0]));
15 String dartVmPath = nativeToUriPath(arguments[1]);
16 String productionName = nativeToUriPath(arguments[2]);
17 String developerName = nativeToUriPath(arguments[3]);
18 String dartdocName = nativeToUriPath(arguments[4]);
19 String dartDir = appendSlash(nativeToUriPath(arguments[5]));
20
21 Uri dartUri = cwd.resolve(dartDir);
22 Uri productUri = cwd.resolve(productDir);
23
24 Uri dartVmUri = productUri.resolve(dartVmPath);
25 Uri productionUri = productUri.resolve(arguments[2]);
26 Uri developerUri = productUri.resolve(arguments[3]);
27 Uri dartdocUri = productUri.resolve(arguments[4]);
28
29 List<String> productionScript = buildScript(
30 'dart2js-production',
31 dartUri, dartVmUri,
32 'sdk/lib/_internal/compiler/implementation/dart2js.dart', '');
33 writeScript(productionUri, productionScript);
34
35 List<String> developerScript = buildScript(
36 'dart2js-developer',
37 dartUri, dartVmUri,
38 'sdk/lib/_internal/compiler/implementation/dart2js.dart',
39 r' ${DART_VM_FLAGS:---enable_checked_mode}');
40 writeScript(developerUri, developerScript);
41
42 List<String> dartdocScript = buildScript(
43 'dartdoc',
44 dartUri, dartVmUri,
45 'sdk/lib/_internal/dartdoc/bin/dartdoc.dart', '');
46 writeScript(dartdocUri, dartdocScript);
47 }
48
49 writeScript(Uri uri, List<String> scripts) {
50 String unixScript = scripts[0];
51 String batFile = scripts[1];
52 var f = new File(uriPathToNative(uri.path));
53 var stream = f.openSync(FileMode.WRITE);
54 try {
55 stream.writeStringSync(unixScript);
56 } finally {
57 stream.closeSync();
58 }
59
60 f = new File('${uriPathToNative(uri.path)}.bat');
61 stream = f.openSync(FileMode.WRITE);
62 try {
63 stream.writeStringSync(batFile);
64 } finally {
65 stream.closeSync();
66 }
67
68 if (Platform.operatingSystem != 'windows') {
69 onExit(ProcessResult result) {
70 if (result.exitCode != 0) {
71 print(result.stdout);
72 print(result.stderr);
73 exit(result.exitCode);
74 }
75 }
76 Process.run('/bin/chmod', ['+x', uri.path]).then(onExit);
77 }
78 }
79
80 List<String> buildScript(String name,
81 Uri dartUri, Uri dartVmLocation,
82 String entrypoint, String options) {
83 bool isWindows = (Platform.operatingSystem == 'windows');
84 Uri uri = dartUri.resolve(entrypoint);
85 String path = relativize(dartVmLocation, uri, isWindows);
86 String pathWin = path.replaceAll("/", "\\");
87
88 print('dartUri = $dartUri');
89 print('dartVmLocation = $dartVmLocation');
90 print('${name}Uri = $uri');
91 print('${name}Path = $path');
92 print('${name}PathWin = $pathWin');
93
94 // Tell the VM to grow the heap more aggressively. This should only
95 // be necessary temporarily until the VM is better at detecting how
96 // applications use memory.
97 // TODO(ahe): Remove this option (http://dartbug.com/6495).
98 options = ' --heap_growth_rate=512$options';
99
100 // Tell the VM to don't bother inlining methods. So far it isn't
101 // paying off but the VM team is working on fixing that.
102 // TODO(ahe): Remove this option (http://dartbug.com/6495).
103 options = ' --no_use_inlining$options';
104
105 return [
106 '''
107 #!/bin/bash
108 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
109 # for details. All rights reserved. Use of this source code is governed by a
110 # BSD-style license that can be found in the LICENSE file.
111
112 # Setting BIN_DIR this way is ugly, but is needed to handle the case where
113 # dart-sdk/bin has been symlinked to. On MacOS, readlink doesn't work
114 # with this case.
115 BIN_DIR="\$(cd "\${0%/*}" ; pwd -P)"
116
117 unset COLORS
118 if test -t 1; then
119 # Stdout is a terminal.
120 if test 8 -le `tput colors`; then
121 # Stdout has at least 8 colors, so enable colors.
122 COLORS="--enable-diagnostic-colors"
123 fi
124 fi
125
126 unset SNAPSHOT
127 if test -f "\$BIN_DIR/${path}.snapshot"; then
128 # TODO(ahe): Remove the following line when we are relatively sure it works.
129 echo Using snapshot "\$BIN_DIR/${path}.snapshot" 1>&2
130 SNAPSHOT="--use_script_snapshot=\$BIN_DIR/${path}.snapshot"
131 fi
132 exec "\$BIN_DIR"/dart$options \$SNAPSHOT "\$BIN_DIR/$path" \$COLORS "\$@"
133 ''',
134 '''
135 @echo off
136 REM Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
137 REM for details. All rights reserved. Use of this source code is governed by a
138 REM BSD-style license that can be found in the LICENSE file.
139
140 set SCRIPTPATH=%~dp0
141
142 REM Does the path have a trailing slash? If so, remove it.
143 if %SCRIPTPATH:~-1%==\ set SCRIPTPATH=%SCRIPTPATH:~0,-1%
144
145 set arguments=%*
146 set SNAPSHOT=
147 set SNAPSHOTNAME=%SCRIPTPATH%${pathWin}.snapshot
148 if exist %SNAPSHOTNAME% (
149 echo Using snapshot "%SNAPSHOTNAME%" 1>&2
150 set SNAPSHOT=--use_script_snapshot=%SNAPSHOTNAME%
151 )
152
153 "%SCRIPTPATH%\dart.exe"$options %SNAPSHOT% "%SCRIPTPATH%$pathWin" %arguments%
154 '''.replaceAll('\n', '\r\n')];
155 }
OLDNEW
« no previous file with comments | « no previous file | dart/utils/compiler/compiler.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698