OLD | NEW |
---|---|
1 #!/usr/bin/env dart | 1 #!/usr/bin/env dart |
2 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 2 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
3 // for details. All rights reserved. Use of this source code is governed by a | 3 // for details. All rights reserved. Use of this source code is governed by a |
4 // BSD-style license that can be found in the LICENSE file. | 4 // BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 /// Command line tool to merge the SDK libraries and our patch files. | 6 /// Command line tool to merge the SDK libraries and our patch files. |
7 /// This is currently designed as an offline tool, but we could automate it. | 7 /// This is currently designed as an offline tool, but we could automate it. |
8 | 8 |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 import 'dart:isolate' show RawReceivePort; | 10 import 'dart:isolate' show RawReceivePort; |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
120 librariesJson.toFilePath(), JSON.encode({"libraries": locations})); | 120 librariesJson.toFilePath(), JSON.encode({"libraries": locations})); |
121 | 121 |
122 if (forVm || forFlutter) { | 122 if (forVm || forFlutter) { |
123 var vmserviceName = forVm ? 'vmservice_io' : 'vmservice_sky'; | 123 var vmserviceName = forVm ? 'vmservice_io' : 'vmservice_sky'; |
124 var targetName = forVm ? 'vm_fasta' : 'flutter_fasta'; | 124 var targetName = forVm ? 'vm_fasta' : 'flutter_fasta'; |
125 Uri vmserviceUri = outDirUri.resolve('$vmserviceName.dill'); | 125 Uri vmserviceUri = outDirUri.resolve('$vmserviceName.dill'); |
126 await fasta.compilePlatform(outDirUri, platform, | 126 await fasta.compilePlatform(outDirUri, platform, |
127 packages: packages, | 127 packages: packages, |
128 outlineOutput: outline, | 128 outlineOutput: outline, |
129 backendTarget: forVm ? 'vm_fasta' : 'flutter_fasta'); | 129 backendTarget: forVm ? 'vm_fasta' : 'flutter_fasta'); |
130 var base = path.fromUri(Platform.script); | |
131 Uri repositoryDir = | |
132 new Uri.directory(path.dirname(path.dirname(path.absolute(base)))); | |
133 Uri vmserviceSdk = repositoryDir.resolve('runtime/bin/vmservice_sdk/'); | |
Siggi Cherem (dart-lang)
2017/06/15 17:43:39
Sorry I didn't notice this earlier, I just realize
sivachandra
2017/06/15 18:34:21
How is it in patch set 3?
| |
134 // TODO(sigmundch): Specify libraries.json directly instead of "--sdk" | |
135 // after #29882 is fixed. | |
130 await fasta.compile([ | 136 await fasta.compile([ |
131 "--sdk=$outDirUri", | 137 "--sdk=$vmserviceSdk", |
132 "--platform=$outline", | 138 "--platform=$outline", |
133 "--target=$targetName", | 139 "--target=$targetName", |
134 "--packages=$packages", | 140 "--packages=$packages", |
135 "dart:$vmserviceName", | 141 "dart:$vmserviceName", |
136 "-o", | 142 "-o", |
137 "$vmserviceUri", | 143 "$vmserviceUri", |
138 ]); | 144 ]); |
139 } else { | 145 } else { |
140 await dart2js.compilePlatform(outDirUri, platform, | 146 await dart2js.compilePlatform(outDirUri, platform, |
141 packages: packages, outlineOutput: outline); | 147 packages: packages, outlineOutput: outline); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 _copyExtraLibraries(String sdkOut, Map<String, String> locations) { | 242 _copyExtraLibraries(String sdkOut, Map<String, String> locations) { |
237 if (forDart2js) return; | 243 if (forDart2js) return; |
238 var base = path.fromUri(Platform.script); | 244 var base = path.fromUri(Platform.script); |
239 var dartDir = path.dirname(path.dirname(path.absolute(base))); | 245 var dartDir = path.dirname(path.dirname(path.absolute(base))); |
240 | 246 |
241 var builtinLibraryIn = path.join(dartDir, 'runtime', 'bin', 'builtin.dart'); | 247 var builtinLibraryIn = path.join(dartDir, 'runtime', 'bin', 'builtin.dart'); |
242 var builtinLibraryOut = path.join(sdkOut, '_builtin', '_builtin.dart'); | 248 var builtinLibraryOut = path.join(sdkOut, '_builtin', '_builtin.dart'); |
243 _writeSync(builtinLibraryOut, readInputFile(builtinLibraryIn)); | 249 _writeSync(builtinLibraryOut, readInputFile(builtinLibraryIn)); |
244 locations['_builtin'] = path.join('_builtin', '_builtin.dart'); | 250 locations['_builtin'] = path.join('_builtin', '_builtin.dart'); |
245 | 251 |
246 for (var file in ['loader.dart', 'server.dart', 'vmservice_io.dart']) { | |
247 var libraryIn = path.join(dartDir, 'runtime', 'bin', 'vmservice', file); | |
248 var libraryOut = path.join(sdkOut, 'vmservice_io', file); | |
249 _writeSync(libraryOut, readInputFile(libraryIn)); | |
250 } | |
251 | |
252 locations[forVm ? "vmservice_io" : "vmservice_sky"] = | |
253 path.join('vmservice_io', 'vmservice_io.dart'); | |
254 locations["_vmservice"] = path.join('vmservice', 'vmservice.dart'); | |
255 | |
256 if (forFlutter) { | 252 if (forFlutter) { |
257 // Flutter repo has this layout: | 253 // Flutter repo has this layout: |
258 // engine/src/ | 254 // engine/src/ |
259 // dart/ | 255 // dart/ |
260 // flutter/ | 256 // flutter/ |
261 var srcDir = path.dirname(path.dirname(path.dirname(path.absolute(base)))); | 257 var srcDir = path.dirname(path.dirname(path.dirname(path.absolute(base)))); |
262 var uiLibraryInDir = path.join(srcDir, 'flutter', 'lib', 'ui'); | 258 var uiLibraryInDir = path.join(srcDir, 'flutter', 'lib', 'ui'); |
263 for (var file in new Directory(uiLibraryInDir).listSync()) { | 259 for (var file in new Directory(uiLibraryInDir).listSync()) { |
264 if (!file.path.endsWith('.dart')) continue; | 260 if (!file.path.endsWith('.dart')) continue; |
265 var name = path.basename(file.path); | 261 var name = path.basename(file.path); |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
676 if (diff != 0) return diff; | 672 if (diff != 0) return diff; |
677 return end - other.end; | 673 return end - other.end; |
678 } | 674 } |
679 } | 675 } |
680 | 676 |
681 List<SdkLibrary> _getSdkLibraries(String contents) { | 677 List<SdkLibrary> _getSdkLibraries(String contents) { |
682 var libraryBuilder = new SdkLibrariesReader_LibraryBuilder(forDart2js); | 678 var libraryBuilder = new SdkLibrariesReader_LibraryBuilder(forDart2js); |
683 parseCompilationUnit(contents).accept(libraryBuilder); | 679 parseCompilationUnit(contents).accept(libraryBuilder); |
684 return libraryBuilder.librariesMap.sdkLibraries; | 680 return libraryBuilder.librariesMap.sdkLibraries; |
685 } | 681 } |
OLD | NEW |