@@ -29,6 +29,8 @@ import 'globals.dart' as globals;
2929enum Artifact {
3030 /// The tool which compiles a dart kernel file into native code.
3131 genSnapshot,
32+ genSnapshotArm64,
33+ genSnapshotX64,
3234
3335 /// The flutter tester binary.
3436 flutterTester,
@@ -173,6 +175,10 @@ String? _artifactToFileName(Artifact artifact, Platform hostPlatform, [BuildMode
173175 switch (artifact) {
174176 case Artifact .genSnapshot:
175177 return 'gen_snapshot' ;
178+ case Artifact .genSnapshotArm64:
179+ return 'gen_snapshot_arm64' ;
180+ case Artifact .genSnapshotX64:
181+ return 'gen_snapshot_x64' ;
176182 case Artifact .flutterTester:
177183 return 'flutter_tester$exe ' ;
178184 case Artifact .flutterFramework:
@@ -543,6 +549,8 @@ class CachedArtifacts implements Artifacts {
543549 final String engineDir = _getEngineArtifactsPath (platform, mode)! ;
544550 switch (artifact) {
545551 case Artifact .genSnapshot:
552+ case Artifact .genSnapshotArm64:
553+ case Artifact .genSnapshotX64:
546554 return _fileSystem.path.join (engineDir, _artifactToFileName (artifact, _platform));
547555 case Artifact .engineDartSdkPath:
548556 case Artifact .engineDartBinary:
@@ -581,6 +589,8 @@ class CachedArtifacts implements Artifacts {
581589 final String engineDir = _getEngineArtifactsPath (platform, mode)! ;
582590 switch (artifact) {
583591 case Artifact .genSnapshot:
592+ case Artifact .genSnapshotArm64:
593+ case Artifact .genSnapshotX64:
584594 assert (mode != BuildMode .debug, 'Artifact $artifact only available in non-debug mode.' );
585595
586596 // TODO(cbracken): Build Android gen_snapshot as Arm64 binary to run
@@ -636,6 +646,8 @@ class CachedArtifacts implements Artifacts {
636646 ) {
637647 switch (artifact) {
638648 case Artifact .genSnapshot:
649+ case Artifact .genSnapshotArm64:
650+ case Artifact .genSnapshotX64:
639651 case Artifact .flutterXcframework:
640652 final String artifactFileName = _artifactToFileName (artifact, _platform)! ;
641653 final String engineDir = _getEngineArtifactsPath (platform, mode)! ;
@@ -686,6 +698,9 @@ class CachedArtifacts implements Artifacts {
686698 case Artifact .genSnapshot:
687699 final String genSnapshot = mode.isRelease ? 'gen_snapshot_product' : 'gen_snapshot' ;
688700 return _fileSystem.path.join (root, runtime, 'dart_binaries' , genSnapshot);
701+ case Artifact .genSnapshotArm64:
702+ case Artifact .genSnapshotX64:
703+ throw ArgumentError ('$artifact is not available on this platform' );
689704 case Artifact .flutterPatchedSdkPath:
690705 const String artifactFileName = 'flutter_runner_patched_sdk' ;
691706 return _fileSystem.path.join (root, runtime, artifactFileName);
@@ -741,6 +756,8 @@ class CachedArtifacts implements Artifacts {
741756 String _getHostArtifactPath (Artifact artifact, TargetPlatform platform, BuildMode ? mode) {
742757 switch (artifact) {
743758 case Artifact .genSnapshot:
759+ case Artifact .genSnapshotArm64:
760+ case Artifact .genSnapshotX64:
744761 // For script snapshots any gen_snapshot binary will do. Returning gen_snapshot for
745762 // android_arm in profile mode because it is available on all supported host platforms.
746763 return _getAndroidArtifactPath (artifact, TargetPlatform .android_arm, BuildMode .profile);
@@ -1178,7 +1195,9 @@ class CachedLocalEngineArtifacts implements Artifacts {
11781195 isDirectoryArtifact ? null : _artifactToFileName (artifact, _platform, mode);
11791196 switch (artifact) {
11801197 case Artifact .genSnapshot:
1181- return _genSnapshotPath ();
1198+ case Artifact .genSnapshotArm64:
1199+ case Artifact .genSnapshotX64:
1200+ return _genSnapshotPath (artifact);
11821201 case Artifact .flutterTester:
11831202 return _flutterTesterPath (platform! );
11841203 case Artifact .isolateSnapshotData:
@@ -1344,15 +1363,15 @@ class CachedLocalEngineArtifacts implements Artifacts {
13441363 return _fileSystem.path.join (localEngineInfo.targetOutPath, 'flutter_web_sdk' );
13451364 }
13461365
1347- String _genSnapshotPath () {
1366+ String _genSnapshotPath (Artifact artifact ) {
13481367 const List <String > clangDirs = < String > [
13491368 '.' ,
13501369 'clang_x64' ,
13511370 'clang_x86' ,
13521371 'clang_i386' ,
13531372 'clang_arm64' ,
13541373 ];
1355- final String genSnapshotName = _artifactToFileName (Artifact .genSnapshot , _platform)! ;
1374+ final String genSnapshotName = _artifactToFileName (artifact , _platform)! ;
13561375 for (final String clangDir in clangDirs) {
13571376 final String genSnapshotPath = _fileSystem.path.join (
13581377 localEngineInfo.targetOutPath,
@@ -1422,6 +1441,8 @@ class CachedLocalWebSdkArtifacts implements Artifacts {
14221441 _artifactToFileName (artifact, _platform, mode),
14231442 );
14241443 case Artifact .genSnapshot:
1444+ case Artifact .genSnapshotArm64:
1445+ case Artifact .genSnapshotX64:
14251446 case Artifact .flutterTester:
14261447 case Artifact .flutterFramework:
14271448 case Artifact .flutterFrameworkDsym:
0 commit comments