diff --git a/pkgs/development/compilers/flutter/patches/move-cache.patch b/pkgs/development/compilers/flutter/patches/move-cache.patch index a81d2def242c..5cb7c71e9bd4 100644 --- a/pkgs/development/compilers/flutter/patches/move-cache.patch +++ b/pkgs/development/compilers/flutter/patches/move-cache.patch @@ -70,3 +70,133 @@ index defc86cc20..7fdf14d112 100644 } } +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', () {