mirror of
https://github.com/flutter/flutter.git
synced 2026-02-15 23:33:36 +08:00
Revert "Build sky_engine Dart SDK summary bundle on FlutterEngine.download()." (#5455)
This commit is contained in:
parent
5c14444bfd
commit
ade895de4a
@ -5,8 +5,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_tools/src/dart/pub.dart';
|
||||
import 'package:flutter_tools/src/dart/summary.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
import 'base/context.dart';
|
||||
@ -236,17 +234,13 @@ class MaterialFonts {
|
||||
}
|
||||
|
||||
class FlutterEngine {
|
||||
|
||||
FlutterEngine(this.cache);
|
||||
|
||||
static const String kName = 'engine';
|
||||
static const String kSkyEngine = 'sky_engine';
|
||||
static const String kSkyServices = 'sky_services';
|
||||
static const String kSdkBundle = 'sdk.ds';
|
||||
|
||||
final Cache cache;
|
||||
|
||||
List<String> _getPackageDirs() => const <String>[kSkyEngine, kSkyServices];
|
||||
List<String> _getPackageDirs() => <String>['sky_engine', 'sky_services'];
|
||||
|
||||
List<String> _getEngineDirs() {
|
||||
List<String> dirs = <String>[
|
||||
@ -301,9 +295,6 @@ class FlutterEngine {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!new File(path.join(pkgDir.path, kSkyEngine, kSdkBundle)).existsSync())
|
||||
return false;
|
||||
|
||||
Directory engineDir = cache.getArtifactDirectory(kName);
|
||||
for (String dirName in _getEngineDirs()) {
|
||||
Directory dir = new Directory(path.join(engineDir.path, dirName));
|
||||
@ -328,24 +319,12 @@ class FlutterEngine {
|
||||
|
||||
Directory pkgDir = cache.getCacheDir('pkg');
|
||||
for (String pkgName in _getPackageDirs()) {
|
||||
String pkgPath = path.join(pkgDir.path, pkgName);
|
||||
Directory dir = new Directory(pkgPath);
|
||||
Directory dir = new Directory(path.join(pkgDir.path, pkgName));
|
||||
if (!dir.existsSync() || allDirty) {
|
||||
await _downloadItem('Downloading package $pkgName...', url + pkgName + '.zip', pkgDir);
|
||||
await pubGet(directory: pkgPath);
|
||||
}
|
||||
}
|
||||
|
||||
Status summaryStatus = logger.startProgress('Building Dart SDK summary...');
|
||||
try {
|
||||
String skyEnginePath = path.join(pkgDir.path, kSkyEngine);
|
||||
String skyServicesPath = path.join(pkgDir.path, kSkyServices);
|
||||
if (!new File(path.join(skyEnginePath, kSdkBundle)).existsSync())
|
||||
buildSkyEngineSdkSummary(skyEnginePath, skyServicesPath, kSdkBundle);
|
||||
} finally {
|
||||
summaryStatus.stop(showElapsedTime: true);
|
||||
}
|
||||
|
||||
Directory engineDir = cache.getArtifactDirectory(kName);
|
||||
for (String dirName in _getEngineDirs()) {
|
||||
Directory dir = new Directory(path.join(engineDir.path, dirName));
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
import 'dart:io' as io;
|
||||
|
||||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/file_system/physical_file_system.dart';
|
||||
import 'package:analyzer/source/sdk_ext.dart';
|
||||
import 'package:analyzer/src/context/builder.dart'; // ignore: implementation_imports
|
||||
import 'package:analyzer/src/dart/sdk/sdk.dart'; // ignore: implementation_imports
|
||||
import 'package:analyzer/src/generated/engine.dart'; // ignore: implementation_imports
|
||||
import 'package:analyzer/src/generated/source.dart'; // ignore: implementation_imports
|
||||
import 'package:analyzer/src/summary/summary_file_builder.dart'; // ignore: implementation_imports
|
||||
import 'package:package_config/packages.dart';
|
||||
import 'package:path/path.dart' as pathos;
|
||||
|
||||
/// Given the [skyEnginePath] and [skyServicesPath], locate corresponding
|
||||
/// `_embedder.yaml` and `_sdkext`, compose the full embedded Dart SDK, and
|
||||
/// build the [outBundleName] file with its linked summary.
|
||||
void buildSkyEngineSdkSummary(
|
||||
String skyEnginePath, String skyServicesPath, String outBundleName) {
|
||||
ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE;
|
||||
|
||||
ContextBuilder builder = new ContextBuilder(resourceProvider, null, null);
|
||||
Packages packages = builder.createPackageMap(skyServicesPath);
|
||||
Map<String, List<Folder>> packageMap = builder.convertPackagesToMap(packages);
|
||||
packageMap['sky_engine'] = <Folder>[
|
||||
resourceProvider.getFolder(pathos.join(skyEnginePath, 'lib'))
|
||||
];
|
||||
|
||||
//
|
||||
// Read the `_embedder.yaml` file.
|
||||
//
|
||||
EmbedderYamlLocator yamlLocator = new EmbedderYamlLocator(packageMap);
|
||||
assert(yamlLocator.embedderYamls.length == 1);
|
||||
|
||||
//
|
||||
// Read the `_sdkext` file.
|
||||
//
|
||||
SdkExtUriResolver extResolver = new SdkExtUriResolver(packageMap);
|
||||
assert(extResolver.urlMappings.length == 1);
|
||||
|
||||
//
|
||||
// Create the EmbedderSdk instance.
|
||||
//
|
||||
EmbedderSdk sdk =
|
||||
new EmbedderSdk(resourceProvider, yamlLocator.embedderYamls);
|
||||
sdk.addExtensions(extResolver.urlMappings);
|
||||
sdk.analysisOptions = new AnalysisOptionsImpl()..strongMode = true;
|
||||
|
||||
//
|
||||
// Gather sources.
|
||||
//
|
||||
List<Source> sources = sdk.uris.map(sdk.mapDartUri).toList();
|
||||
|
||||
//
|
||||
// Build.
|
||||
//
|
||||
SummaryBuildConfig config = new SummaryBuildConfig(strongMode: true);
|
||||
BuilderOutput output =
|
||||
new SummaryBuilder(sources, sdk.context, config).build();
|
||||
String outputPath = pathos.join(skyEnginePath, outBundleName);
|
||||
new io.File(outputPath).writeAsBytesSync(output.sum);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user