13da32182d
GitOrigin-RevId: a7855f2235a1876f97473a76151fec2afa02b287
202 lines
11 KiB
Diff
202 lines
11 KiB
Diff
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
|
|
index ed42baea29..12941f733a 100644
|
|
--- a/packages/flutter_tools/lib/src/asset.dart
|
|
+++ b/packages/flutter_tools/lib/src/asset.dart
|
|
@@ -11,11 +11,11 @@ import 'base/file_system.dart';
|
|
import 'base/logger.dart';
|
|
import 'base/platform.dart';
|
|
import 'build_info.dart';
|
|
-import 'cache.dart';
|
|
import 'convert.dart';
|
|
import 'dart/package_map.dart';
|
|
import 'devfs.dart';
|
|
import 'flutter_manifest.dart';
|
|
+import 'globals.dart' as globals;
|
|
import 'license_collector.dart';
|
|
import 'project.dart';
|
|
|
|
@@ -504,7 +504,7 @@ class ManifestAssetBundle implements AssetBundle {
|
|
}
|
|
final Uri entryUri = _fileSystem.path.toUri(asset);
|
|
result.add(_Asset(
|
|
- baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'),
|
|
+ baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts'),
|
|
relativeUri: Uri(path: entryUri.pathSegments.last),
|
|
entryUri: entryUri,
|
|
package: null,
|
|
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
|
|
index defc86cc20..7fdf14d112 100644
|
|
--- a/packages/flutter_tools/lib/src/cache.dart
|
|
+++ b/packages/flutter_tools/lib/src/cache.dart
|
|
@@ -22,6 +22,7 @@ import 'base/user_messages.dart';
|
|
import 'build_info.dart';
|
|
import 'convert.dart';
|
|
import 'features.dart';
|
|
+import 'globals.dart' as globals;
|
|
|
|
const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
|
|
const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
|
|
@@ -322,8 +323,13 @@ class Cache {
|
|
return;
|
|
}
|
|
assert(_lock == null);
|
|
+ final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
|
|
+ if (!dir.existsSync()) {
|
|
+ dir.createSync(recursive: true);
|
|
+ globals.os.chmod(dir, '755');
|
|
+ }
|
|
final File lockFile =
|
|
- _fileSystem.file(_fileSystem.path.join(flutterRoot!, 'bin', 'cache', 'lockfile'));
|
|
+ _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'lockfile'));
|
|
try {
|
|
_lock = lockFile.openSync(mode: FileMode.write);
|
|
} on FileSystemException catch (e) {
|
|
@@ -382,8 +388,7 @@ class Cache {
|
|
|
|
String get devToolsVersion {
|
|
if (_devToolsVersion == null) {
|
|
- const String devToolsDirPath = 'dart-sdk/bin/resources/devtools';
|
|
- final Directory devToolsDir = getCacheDir(devToolsDirPath, shouldCreate: false);
|
|
+ final Directory devToolsDir = _fileSystem.directory(_fileSystem.path.join(flutterRoot!, 'bin/cache/dart-sdk/bin/resources/devtools'));
|
|
if (!devToolsDir.existsSync()) {
|
|
throw Exception('Could not find directory at ${devToolsDir.path}');
|
|
}
|
|
@@ -536,7 +541,7 @@ class Cache {
|
|
if (_rootOverride != null) {
|
|
return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
|
|
} else {
|
|
- return _fileSystem.directory(_fileSystem.path.join(flutterRoot!, 'bin', 'cache'));
|
|
+ return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
|
|
}
|
|
}
|
|
|
|
diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart
|
|
index 2aac9686e8..32c4b98b88 100644
|
|
--- a/packages/flutter_tools/lib/src/artifacts.dart
|
|
+++ b/packages/flutter_tools/lib/src/artifacts.dart
|
|
@@ -346,10 +346,10 @@ class CachedArtifacts implements Artifacts {
|
|
) {
|
|
switch (artifact) {
|
|
case HostArtifact.engineDartSdkPath:
|
|
- final String path = _dartSdkPath(_cache);
|
|
+ final String path = _dartSdkPath(_fileSystem);
|
|
return _fileSystem.directory(path);
|
|
case HostArtifact.engineDartBinary:
|
|
- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
return _fileSystem.file(path);
|
|
case HostArtifact.flutterWebSdk:
|
|
final String path = _getFlutterWebSdkPath();
|
|
@@ -398,7 +398,7 @@ class CachedArtifacts implements Artifacts {
|
|
case HostArtifact.dart2jsSnapshot:
|
|
case HostArtifact.dartdevcSnapshot:
|
|
case HostArtifact.kernelWorkerSnapshot:
|
|
- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
return _fileSystem.file(path);
|
|
case HostArtifact.iosDeploy:
|
|
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
|
|
@@ -461,11 +461,13 @@ class CachedArtifacts implements Artifacts {
|
|
String _getAndroidArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
|
|
final String engineDir = _getEngineArtifactsPath(platform, mode)!;
|
|
switch (artifact) {
|
|
+ case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
+ assert(mode != BuildMode.debug, 'Artifact $artifact only available in non-debug mode.');
|
|
+ return _fileSystem.path.join(engineDir, _artifactToFileName(artifact));
|
|
case Artifact.genSnapshot:
|
|
assert(mode != BuildMode.debug, 'Artifact $artifact only available in non-debug mode.');
|
|
final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform());
|
|
return _fileSystem.path.join(engineDir, hostPlatform, _artifactToFileName(artifact));
|
|
- case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
case Artifact.constFinder:
|
|
case Artifact.flutterFramework:
|
|
case Artifact.flutterMacOSFramework:
|
|
@@ -497,13 +499,13 @@ class CachedArtifacts implements Artifacts {
|
|
switch (artifact) {
|
|
case Artifact.genSnapshot:
|
|
case Artifact.flutterXcframework:
|
|
+ case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
final String artifactFileName = _artifactToFileName(artifact)!;
|
|
final String engineDir = _getEngineArtifactsPath(platform, mode)!;
|
|
return _fileSystem.path.join(engineDir, artifactFileName);
|
|
case Artifact.flutterFramework:
|
|
final String engineDir = _getEngineArtifactsPath(platform, mode)!;
|
|
return _getIosEngineArtifactPath(engineDir, environmentType, _fileSystem);
|
|
- case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
case Artifact.constFinder:
|
|
case Artifact.flutterMacOSFramework:
|
|
case Artifact.flutterMacOSPodspec:
|
|
@@ -594,14 +596,10 @@ class CachedArtifacts implements Artifacts {
|
|
// For script snapshots any gen_snapshot binary will do. Returning gen_snapshot for
|
|
// android_arm in profile mode because it is available on all supported host platforms.
|
|
return _getAndroidArtifactPath(artifact, TargetPlatform.android_arm, BuildMode.profile);
|
|
- case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
- return _fileSystem.path.join(
|
|
- _dartSdkPath(_cache), 'bin', 'snapshots',
|
|
- _artifactToFileName(artifact),
|
|
- );
|
|
case Artifact.flutterTester:
|
|
case Artifact.vmSnapshotData:
|
|
case Artifact.isolateSnapshotData:
|
|
+ case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
case Artifact.icuData:
|
|
final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path;
|
|
final String platformDirName = _enginePlatformDirectoryName(platform);
|
|
@@ -797,7 +795,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
|
|
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
return _fileSystem.file(path);
|
|
case HostArtifact.dartdevcSnapshot:
|
|
- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
return _fileSystem.file(path);
|
|
case HostArtifact.kernelWorkerSnapshot:
|
|
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
|
|
@@ -922,9 +920,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
|
|
case Artifact.windowsUwpCppClientWrapper:
|
|
return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
|
|
case Artifact.frontendServerSnapshotForEngineDartSdk:
|
|
- return _fileSystem.path.join(
|
|
- _hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName,
|
|
- );
|
|
+ return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName);
|
|
case Artifact.uwptool:
|
|
return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
|
|
}
|
|
@@ -1034,8 +1030,8 @@ class OverrideArtifacts implements Artifacts {
|
|
}
|
|
|
|
/// Locate the Dart SDK.
|
|
-String _dartSdkPath(Cache cache) {
|
|
- return cache.getRoot().childDirectory('dart-sdk').path;
|
|
+String _dartSdkPath(FileSystem fileSystem) {
|
|
+ return fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'dart-sdk');
|
|
}
|
|
|
|
class _TestArtifacts implements Artifacts {
|
|
diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart
|
|
index d906511a15..adfdd4bb42 100644
|
|
--- a/packages/flutter_tools/test/general.shard/artifacts_test.dart
|
|
+++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart
|
|
@@ -153,10 +153,6 @@ void main() {
|
|
artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.release),
|
|
fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-release'),
|
|
);
|
|
- expect(
|
|
- artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
|
|
- fileSystem.path.join('root', 'bin', 'cache', 'dart-sdk', 'bin', 'snapshots', 'frontend_server.dart.snapshot')
|
|
- );
|
|
});
|
|
|
|
testWithoutContext('precompiled web artifact paths are correct', () {
|
|
@@ -322,11 +318,6 @@ void main() {
|
|
artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
|
|
fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk'),
|
|
);
|
|
- expect(
|
|
- artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
|
|
- fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk', 'bin',
|
|
- 'snapshots', 'frontend_server.dart.snapshot')
|
|
- );
|
|
});
|
|
|
|
testWithoutContext('getEngineType', () {
|