@@ -9,6 +9,7 @@ import 'base/common.dart';
9
9
import 'base/file_system.dart' ;
10
10
import 'base/os.dart' ;
11
11
import 'base/platform.dart' ;
12
+ import 'base/user_messages.dart' ;
12
13
import 'base/utils.dart' ;
13
14
import 'build_info.dart' ;
14
15
import 'cache.dart' ;
@@ -62,6 +63,9 @@ enum Artifact {
62
63
/// Tools related to subsetting or icon font files.
63
64
fontSubset,
64
65
constFinder,
66
+
67
+ /// The location of file generators.
68
+ flutterToolsFileGenerators,
65
69
}
66
70
67
71
/// A subset of [Artifact] s that are platform and build mode independent
@@ -202,6 +206,8 @@ String? _artifactToFileName(Artifact artifact, Platform hostPlatform, [ BuildMod
202
206
return 'font-subset$exe ' ;
203
207
case Artifact .constFinder:
204
208
return 'const_finder.dart.snapshot' ;
209
+ case Artifact .flutterToolsFileGenerators:
210
+ return '' ;
205
211
}
206
212
}
207
213
@@ -525,6 +531,8 @@ class CachedArtifacts implements Artifacts {
525
531
case Artifact .windowsCppClientWrapper:
526
532
case Artifact .windowsDesktopPath:
527
533
return _getHostArtifactPath (artifact, platform, mode);
534
+ case Artifact .flutterToolsFileGenerators:
535
+ return _getFileGeneratorsPath ();
528
536
}
529
537
}
530
538
@@ -562,6 +570,8 @@ class CachedArtifacts implements Artifacts {
562
570
case Artifact .windowsCppClientWrapper:
563
571
case Artifact .windowsDesktopPath:
564
572
return _getHostArtifactPath (artifact, platform, mode);
573
+ case Artifact .flutterToolsFileGenerators:
574
+ return _getFileGeneratorsPath ();
565
575
}
566
576
}
567
577
@@ -611,6 +621,8 @@ class CachedArtifacts implements Artifacts {
611
621
case Artifact .windowsCppClientWrapper:
612
622
case Artifact .windowsDesktopPath:
613
623
return _getHostArtifactPath (artifact, platform, mode);
624
+ case Artifact .flutterToolsFileGenerators:
625
+ return _getFileGeneratorsPath ();
614
626
}
615
627
}
616
628
@@ -685,6 +697,8 @@ class CachedArtifacts implements Artifacts {
685
697
case Artifact .fuchsiaFlutterRunner:
686
698
case Artifact .fuchsiaKernelCompiler:
687
699
throw StateError ('Artifact $artifact not available for platform $platform .' );
700
+ case Artifact .flutterToolsFileGenerators:
701
+ return _getFileGeneratorsPath ();
688
702
}
689
703
}
690
704
@@ -952,6 +966,8 @@ class CachedLocalEngineArtifacts implements Artifacts {
952
966
case Artifact .dart2wasmSnapshot:
953
967
case Artifact .frontendServerSnapshotForEngineDartSdk:
954
968
return _fileSystem.path.join (_getDartSdkPath (), 'bin' , 'snapshots' , artifactFileName);
969
+ case Artifact .flutterToolsFileGenerators:
970
+ return _getFileGeneratorsPath ();
955
971
}
956
972
}
957
973
@@ -1099,6 +1115,7 @@ class CachedLocalWebSdkArtifacts implements Artifacts {
1099
1115
case Artifact .fuchsiaFlutterRunner:
1100
1116
case Artifact .fontSubset:
1101
1117
case Artifact .constFinder:
1118
+ case Artifact .flutterToolsFileGenerators:
1102
1119
break ;
1103
1120
}
1104
1121
}
@@ -1298,6 +1315,11 @@ class _TestArtifacts implements Artifacts {
1298
1315
BuildMode ? mode,
1299
1316
EnvironmentType ? environmentType,
1300
1317
}) {
1318
+ // The path to file generators is the same even in the test environment.
1319
+ if (artifact == Artifact .flutterToolsFileGenerators) {
1320
+ return _getFileGeneratorsPath ();
1321
+ }
1322
+
1301
1323
final StringBuffer buffer = StringBuffer ();
1302
1324
buffer.write (artifact);
1303
1325
if (platform != null ) {
@@ -1340,3 +1362,20 @@ class _TestLocalEngine extends _TestArtifacts {
1340
1362
@override
1341
1363
final LocalEngineInfo localEngineInfo;
1342
1364
}
1365
+
1366
+ String _getFileGeneratorsPath () {
1367
+ final String flutterRoot = Cache .defaultFlutterRoot (
1368
+ fileSystem: globals.localFileSystem,
1369
+ platform: const LocalPlatform (),
1370
+ userMessages: UserMessages (),
1371
+ );
1372
+ return globals.localFileSystem.path.join (
1373
+ flutterRoot,
1374
+ 'packages' ,
1375
+ 'flutter_tools' ,
1376
+ 'lib' ,
1377
+ 'src' ,
1378
+ 'web' ,
1379
+ 'file_generators' ,
1380
+ );
1381
+ }
0 commit comments