From a3b9e20a6b2f8ac2b2b4c2f032ee7478ed06e1de Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Mon, 1 Jun 2020 11:03:02 -0700 Subject: [PATCH] Fix non-local-engine Linux release builds (#58372) --- .../lib/src/build_system/targets/linux.dart | 6 ++++-- packages/flutter_tools/lib/src/cache.dart | 4 ++++ .../build_system/targets/linux_test.dart | 5 +++++ .../test/general.shard/cache_test.dart | 13 +++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) 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 00a03c4182..9963f50ca1 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 @@ const List _kLinuxArtifacts = [ '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 @@ class UnpackLinux extends Target { outputDirectory: outputDirectory, artifacts: _kLinuxArtifacts, clientSourcePaths: [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 28392d08cc..093a1d1f82 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -1392,7 +1392,11 @@ const List> _windowsDesktopBinaryDirs = >[ const List> _linuxDesktopBinaryDirs = >[ ['linux-x64', 'linux-x64/linux-x64-flutter-glfw.zip'], ['linux-x64', 'linux-x64/flutter-cpp-client-wrapper-glfw.zip'], + ['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-glfw.zip'], + ['linux-x64-release', 'linux-x64-release/linux-x64-flutter-glfw.zip'], ['linux-x64', 'linux-x64/linux-x64-flutter-gtk.zip'], + ['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-gtk.zip'], + ['linux-x64-release', 'linux-x64-release/linux-x64-flutter-gtk.zip'], ]; const List> _macOSDesktopBinaryDirs = >[ 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 9daba1f2f8..cddbcf3e7b 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 @@ void main() { 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 f497894a9f..3a584b6303 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 @@ void main() { 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([ + contains(contains('profile')), + contains(contains('release')), + ])); + }); } class FakeCachedArtifact extends EngineCachedArtifact {