Fix non-local-engine Linux release builds (#58372)
diff --git a/packages/flutter_tools/lib/src/build_system/targets/linux.dart b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
index 00a03c4..9963f50 100644
--- a/packages/flutter_tools/lib/src/build_system/targets/linux.dart
+++ b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
@@ -23,8 +23,6 @@
'flutter_glfw.h',
// GTK. Not yet used by the template.
'libflutter_linux_gtk.so',
- // Shared.
- 'icudtl.dat',
];
const String _kLinuxDepfile = 'linux_engine_sources.d';
@@ -86,6 +84,10 @@
outputDirectory: outputDirectory,
artifacts: _kLinuxArtifacts,
clientSourcePaths: <String>[clientSourcePath, headersPath],
+ icuDataPath: environment.artifacts.getArtifactPath(
+ Artifact.icuData,
+ platform: TargetPlatform.linux_x64,
+ )
);
final DepfileService depfileService = DepfileService(
fileSystem: environment.fileSystem,
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index 28392d0..093a1d1 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -1392,7 +1392,11 @@
const List<List<String>> _linuxDesktopBinaryDirs = <List<String>>[
<String>['linux-x64', 'linux-x64/linux-x64-flutter-glfw.zip'],
<String>['linux-x64', 'linux-x64/flutter-cpp-client-wrapper-glfw.zip'],
+ <String>['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-glfw.zip'],
+ <String>['linux-x64-release', 'linux-x64-release/linux-x64-flutter-glfw.zip'],
<String>['linux-x64', 'linux-x64/linux-x64-flutter-gtk.zip'],
+ <String>['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-gtk.zip'],
+ <String>['linux-x64-release', 'linux-x64-release/linux-x64-flutter-gtk.zip'],
];
const List<List<String>> _macOSDesktopBinaryDirs = <List<String>>[
diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
index 9daba1f..cddbcf3 100644
--- a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
+++ b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
@@ -36,6 +36,11 @@
mode: anyNamed('mode'),
platform: anyNamed('platform'),
)).thenReturn('linux-x64/flutter_linux');
+ when(mockArtifacts.getArtifactPath(
+ Artifact.icuData,
+ mode: anyNamed('mode'),
+ platform: anyNamed('platform'),
+ )).thenReturn(r'linux-x64/icudtl.dat');
final Environment testEnvironment = Environment.test(
fileSystem.currentDirectory,
diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart
index f497894..3a584b6 100644
--- a/packages/flutter_tools/test/general.shard/cache_test.dart
+++ b/packages/flutter_tools/test/general.shard/cache_test.dart
@@ -611,6 +611,19 @@
expect(artifacts.getBinaryDirs(), isNotEmpty);
});
+
+ testWithoutContext('Linux desktop artifacts include profile and release artifacts', () {
+ final MockCache mockCache = MockCache();
+ final LinuxEngineArtifacts artifacts = LinuxEngineArtifacts(
+ mockCache,
+ platform: FakePlatform(operatingSystem: 'linux'),
+ );
+
+ expect(artifacts.getBinaryDirs(), containsAll(<Matcher>[
+ contains(contains('profile')),
+ contains(contains('release')),
+ ]));
+ });
}
class FakeCachedArtifact extends EngineCachedArtifact {