Chromium Code Reviews| Index: tools/patch_sdk.dart |
| diff --git a/tools/patch_sdk.dart b/tools/patch_sdk.dart |
| index e5d71883eb25bbe829d9ebe9aa0330aeb95b9ddc..7fb75a9696bde33c2113ee71f7ca7fe8a8412169 100644 |
| --- a/tools/patch_sdk.dart |
| +++ b/tools/patch_sdk.dart |
| @@ -81,10 +81,11 @@ void usage(String mode) { |
| exit(1); |
| } |
| -const validModes = const ['vm', 'dart2js', 'flutter']; |
| +const validModes = const ['vm', 'dart2js', 'flutter', 'flutter_release']; |
| String mode; |
| bool get forVm => mode == 'vm'; |
| -bool get forFlutter => mode == 'flutter'; |
| +bool get forFlutter => mode == 'flutter' || mode == 'flutter_release'; |
| +bool get forFlutterRelease => mode == 'flutter_release'; |
| bool get forDart2js => mode == 'dart2js'; |
| Future _main(List<String> argv) async { |
| @@ -211,13 +212,17 @@ Future<List<Uri>> compilePlatform(Uri patchedSdk, Target target, Uri packages, |
| ..chaseDependencies = true |
| ..target = target; |
| + var inputs = [Uri.parse('dart:core')]; |
| + if (forFlutter && !forFlutterRelease) { |
| + inputs.add(Uri.parse('dart:vmservice_sky')); |
| + } |
| var result = await generateKernel( |
| new ProcessedOptions( |
| options, |
| // TODO(sigmund): pass all sdk libraries needed here, and make this |
| // hermetic. |
| false, |
| - [Uri.parse('dart:core')]), |
| + inputs), |
| buildSummary: true, |
| buildProgram: true); |
| new File.fromUri(outlineOutput).writeAsBytesSync(result.summary); |
| @@ -292,6 +297,26 @@ String _updateLibraryMetadata(String sdkOut, String libContents) { |
| documented: false, |
| platforms: VM_PLATFORM), |
| '''); |
| + |
| + if (!forFlutterRelease) { |
| + // vmservice should be present unless we build release flavor of Flutter. |
| + extraLibraries.write(''' |
| + "_vmservice": const LibraryInfo( |
| + "vmservice/vmservice.dart", |
| + categories: "Client,Server", |
| + implementation: true, |
| + documented: false, |
| + platforms: VM_PLATFORM), |
| + |
| + "vmservice_sky": const LibraryInfo( |
| + "vmservice_sky/vmservice_io.dart", |
| + categories: "Client,Server", |
| + implementation: true, |
| + documented: false, |
| + platforms: VM_PLATFORM), |
| + |
| + '''); |
| + } |
| } |
| libContents = libContents.replaceAll( |
| @@ -330,6 +355,18 @@ _copyExtraLibraries(String sdkOut, Map<String, String> locations) { |
| _writeSync(uiLibraryOut, readInputFile(file.path)); |
| } |
| locations['ui'] = 'ui/ui.dart'; |
| + |
| + if (!forFlutterRelease) { |
|
Siggi Cherem (dart-lang)
2017/07/12 18:06:18
is the intent to eventually get rid of this? I mea
aam
2017/07/13 16:30:56
If I understand correctly, we won't be able to loa
|
| + // vmservice should be present unless we build release flavor of Flutter. |
| + for (var file in ['loader.dart', 'server.dart', 'vmservice_io.dart']) { |
| + var libraryIn = path.join(dartDir, 'runtime', 'bin', 'vmservice', file); |
| + var libraryOut = path.join(sdkOut, 'vmservice_io', file); |
| + _writeSync(libraryOut, readInputFile(libraryIn)); |
| + } |
| + locations['vmservice_sky'] = |
| + path.join('vmservice_io', 'vmservice_io.dart'); |
| + locations['_vmservice'] = path.join('vmservice', 'vmservice.dart'); |
| + } |
| } |
| } |