From 63c65e5cdbce9c0daeb67aafa24a209d3923be5b Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 14 Jan 2020 19:07:15 -0800 Subject: [PATCH] [flutter_tools] Clean up build_aot code post assemble migration (#48771) --- packages/flutter_tools/lib/src/aot.dart | 13 ++-- .../lib/src/build_system/targets/dart.dart | 26 -------- .../lib/src/commands/assemble.dart | 4 +- .../hermetic/build_aot_test.dart | 59 ------------------- .../build_system/targets/dart_test.dart | 8 --- 5 files changed, 9 insertions(+), 101 deletions(-) delete mode 100644 packages/flutter_tools/test/commands.shard/hermetic/build_aot_test.dart diff --git a/packages/flutter_tools/lib/src/aot.dart b/packages/flutter_tools/lib/src/aot.dart index 9a5b207166b..faceac48e2e 100644 --- a/packages/flutter_tools/lib/src/aot.dart +++ b/packages/flutter_tools/lib/src/aot.dart @@ -38,9 +38,13 @@ class AotBuilder { if (platform == null) { throwToolExit('No AOT build platform specified'); } + + // This code is currently dead, but will be updated as we move iOS to assemble. + // See also: https://github.com/flutter/flutter/issues/32925 if (_canUseAssemble(platform) && extraGenSnapshotOptions?.isEmpty != false && extraFrontEndOptions?.isEmpty != false) { + assert(false); await _buildWithAssemble( targetFile: mainDartFile, outputDir: outputPath, @@ -175,7 +179,6 @@ class AotBuilder { case TargetPlatform.android_arm64: case TargetPlatform.android_x86: case TargetPlatform.darwin_x64: - return true; case TargetPlatform.android_x64: case TargetPlatform.ios: case TargetPlatform.linux_x64: @@ -196,6 +199,9 @@ class AotBuilder { String outputDir, bool quiet }) async { + // This code is currently dead, but will be updated as we move iOS to assemble. + // See also: https://github.com/flutter/flutter/issues/32925 + assert(false); Status status; if (!quiet) { final String typeName = globals.artifacts.getEngineType(targetPlatform, buildMode); @@ -205,10 +211,7 @@ class AotBuilder { ); } final FlutterProject flutterProject = FlutterProject.current(); - // Currently this only supports android, per the check above. - final Target target = buildMode == BuildMode.profile - ? const ProfileCopyFlutterAotBundle() - : const ReleaseCopyFlutterAotBundle(); + const Target target = null; final BuildResult result = await buildSystem.build(target, Environment.test( flutterProject.directory, diff --git a/packages/flutter_tools/lib/src/build_system/targets/dart.dart b/packages/flutter_tools/lib/src/build_system/targets/dart.dart index ab237dac333..8472cf573df 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/dart.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/dart.dart @@ -359,32 +359,6 @@ abstract class CopyFlutterAotBundle extends Target { } } -// This is a one-off rule for implementing build aot in terms of assemble. -class ProfileCopyFlutterAotBundle extends CopyFlutterAotBundle { - const ProfileCopyFlutterAotBundle(); - - @override - String get name => 'profile_android_flutter_bundle'; - - @override - List get dependencies => const [ - AotElfProfile(), - ]; -} - -// This is a one-off rule for implementing build aot in terms of assemble. -class ReleaseCopyFlutterAotBundle extends CopyFlutterAotBundle { - const ReleaseCopyFlutterAotBundle(); - - @override - String get name => 'release_android_flutter_bundle'; - - @override - List get dependencies => const [ - AotElfRelease(), - ]; -} - /// Dart defines are encoded inside [Environment] as a JSON array. List parseDartDefines(Environment environment) { if (!environment.defines.containsKey(kDartDefines)) { diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 18d1297ec94..4d89483cdda 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -41,9 +41,7 @@ const List _kDefaultTargets = [ FastStartAndroidApplication(), ProfileAndroidApplication(), ReleaseAndroidApplication(), - // These are one-off rules for bundle and aot compat - ReleaseCopyFlutterAotBundle(), - ProfileCopyFlutterAotBundle(), + // This is a one-off rule for bundle and aot compat. CopyFlutterBundle(), // Android ABI specific AOT rules. androidArmProfileBundle, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_aot_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_aot_test.dart deleted file mode 100644 index c52fdaabaef..00000000000 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_aot_test.dart +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter_tools/src/build_system/build_system.dart'; -import 'package:flutter_tools/src/build_system/targets/dart.dart'; -import 'package:flutter_tools/src/cache.dart'; -import 'package:flutter_tools/src/commands/build.dart'; -import 'package:mockito/mockito.dart'; -import 'package:flutter_tools/src/globals.dart' as globals; - -import '../../src/common.dart'; -import '../../src/mocks.dart'; -import '../../src/testbed.dart'; - -void main() { - Testbed testbed; - - setUpAll(() { - Cache.disableLocking(); - }); - - tearDownAll(() { - Cache.enableLocking(); - }); - - setUp(() { - testbed = Testbed(overrides: { - BuildSystem: () => MockBuildSystem(), - }); - }); - - test('invokes assemble for android aot build.', () => testbed.run(() async { - globals.fs.file('pubspec.yaml').createSync(); - globals.fs.file('.packages').createSync(); - globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); - when(buildSystem.build(any, any)).thenAnswer((Invocation invocation) async { - return BuildResult(success: true); - }); - final BuildCommand command = BuildCommand(); - applyMocksToCommand(command); - - await createTestCommandRunner(command).run([ - 'build', - 'aot', - '--target-platform=android-arm', - '--no-pub', - ]); - - final Environment environment = verify(buildSystem.build(any, captureAny)).captured.single as Environment; - expect(environment.defines, { - kTargetFile: globals.fs.path.absolute(globals.fs.path.join('lib', 'main.dart')), - kBuildMode: 'release', - kTargetPlatform: 'android-arm', - }); - })); -} - -class MockBuildSystem extends Mock implements BuildSystem {} diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/dart_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/dart_test.dart index fc2391adef9..c3c92957f7b 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/dart_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/dart_test.dart @@ -404,14 +404,6 @@ flutter_tools:lib/'''); ProcessManager: () => mockProcessManager, })); - test('Profile/ReleaseCopyFlutterAotBundle copies .so to correct output directory', () => testbed.run(() async { - androidEnvironment.buildDir.createSync(recursive: true); - androidEnvironment.buildDir.childFile('app.so').createSync(); - await const ProfileCopyFlutterAotBundle().build(androidEnvironment); - - expect(androidEnvironment.outputDir.childFile('app.so').existsSync(), true); - })); - test('kExtraGenSnapshotOptions passes values to gen_snapshot', () => testbed.run(() async { androidEnvironment.defines[kExtraGenSnapshotOptions] = 'foo,bar,baz=2';