[flutter_tool] Use engine flutter_runner prebuilts (#43381)
* [flutter_tool] Use engine flutter_runner prebuilts
* Update packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart
Co-Authored-By: Jonah Williams <jonahwilliams@google.com>
diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart
index c989236..fa12f56 100644
--- a/packages/flutter_tools/lib/src/artifacts.dart
+++ b/packages/flutter_tools/lib/src/artifacts.dart
@@ -58,6 +58,12 @@
skyEnginePath,
/// The location of the macOS engine podspec file.
flutterMacOSPodspec,
+
+ // Fuchsia artifacts from the engine prebuilts.
+ fuchsiaKernelCompiler,
+ fuchsiaPlatformDill,
+ fuchsiaPatchedSdk,
+ fuchsiaFlutterJitRunner,
}
String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMode mode ]) {
@@ -130,6 +136,17 @@
return 'FlutterMacOS.podspec';
case Artifact.webPlatformKernelDill:
return 'flutter_ddc_sdk.dill';
+ case Artifact.fuchsiaKernelCompiler:
+ return 'kernel_compiler.snapshot';
+ case Artifact.fuchsiaPlatformDill:
+ return 'platform_strong.dill';
+ case Artifact.fuchsiaPatchedSdk:
+ return 'flutter_runner_patched_sdk';
+ case Artifact.fuchsiaFlutterJitRunner:
+ if (mode == BuildMode.debug || mode == BuildMode.profile) {
+ return 'flutter_jit_runner-0.far';
+ }
+ return 'flutter_jit_product_runner-0.far';
}
assert(false, 'Invalid artifact $artifact.');
return null;
@@ -190,8 +207,10 @@
return _getIosArtifactPath(artifact, platform, mode);
case TargetPlatform.darwin_x64:
return _getDarwinArtifactPath(artifact, platform, mode);
+ case TargetPlatform.fuchsia_arm64:
+ case TargetPlatform.fuchsia_x64:
+ return _getFuchsiaArtifactPath(artifact, platform, mode);
case TargetPlatform.linux_x64:
- case TargetPlatform.fuchsia:
case TargetPlatform.windows_x64:
case TargetPlatform.tester:
case TargetPlatform.web_javascript:
@@ -258,6 +277,28 @@
}
}
+ String _getFuchsiaArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
+ final String artifactFileName = _artifactToFileName(artifact, platform, mode);
+ final String root = fs.path.join(
+ cache.getArtifactDirectory('flutter_runner').path,
+ 'flutter',
+ fuchsiaArchForTargetPlatform(platform),
+ getNameForBuildMode(mode),
+ );
+ switch (artifact) {
+ case Artifact.fuchsiaKernelCompiler:
+ return fs.path.join(root, 'jit', 'dart_binaries', artifactFileName);
+ case Artifact.fuchsiaPlatformDill:
+ return fs.path.join(root, 'jit', 'flutter_runner_patched_sdk', artifactFileName);
+ case Artifact.fuchsiaPatchedSdk:
+ case Artifact.fuchsiaFlutterJitRunner:
+ return fs.path.join(root, 'jit', artifactFileName);
+ default:
+ assert(false, 'Artifact $artifact not available for platform $platform.');
+ return null;
+ }
+ }
+
String _getFlutterPatchedSdkPath(BuildMode mode) {
final String engineArtifactsPath = cache.getArtifactDirectory('engine').path;
return fs.path.join(engineArtifactsPath, 'common',
@@ -339,7 +380,8 @@
}
final String suffix = mode != BuildMode.debug ? '-${snakeCase(getModeName(mode), '-')}' : '';
return fs.path.join(engineDir, platformName + suffix);
- case TargetPlatform.fuchsia:
+ case TargetPlatform.fuchsia_arm64:
+ case TargetPlatform.fuchsia_x64:
case TargetPlatform.tester:
case TargetPlatform.web_javascript:
assert(mode == null, 'Platform $platform does not support different build modes.');
@@ -430,6 +472,12 @@
return fs.path.join(_hostEngineOutPath, _artifactToFileName(artifact));
case Artifact.webPlatformKernelDill:
return fs.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
+ case Artifact.fuchsiaKernelCompiler:
+ case Artifact.fuchsiaPlatformDill:
+ case Artifact.fuchsiaPatchedSdk:
+ case Artifact.fuchsiaFlutterJitRunner:
+ assert(false, 'Invalid local engine artifact $artifact.');
+ return null;
}
assert(false, 'Invalid artifact $artifact.');
return null;