From 5e7beaf7b8b4736f668f2c804747ebfc75248fcd Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 3 Sep 2019 12:46:08 -0700 Subject: [PATCH] remove input files argument to target (#39701) --- .../lib/src/build_system/build_system.dart | 4 ++-- .../lib/src/build_system/targets/assets.dart | 4 ++-- .../lib/src/build_system/targets/dart.dart | 4 ++-- .../lib/src/build_system/targets/ios.dart | 2 +- .../lib/src/build_system/targets/linux.dart | 9 ++++----- .../lib/src/build_system/targets/macos.dart | 8 ++++---- .../lib/src/build_system/targets/windows.dart | 9 ++++----- .../build_system/build_system_test.dart | 14 +++++++------- .../build_system/exceptions_test.dart | 4 ++-- .../build_system/targets/assets_test.dart | 2 +- .../build_system/targets/dart_test.dart | 4 ++-- .../build_system/targets/macos_test.dart | 10 +++++----- 12 files changed, 36 insertions(+), 38 deletions(-) diff --git a/packages/flutter_tools/lib/src/build_system/build_system.dart b/packages/flutter_tools/lib/src/build_system/build_system.dart index c97ce86876..ff456ff80f 100644 --- a/packages/flutter_tools/lib/src/build_system/build_system.dart +++ b/packages/flutter_tools/lib/src/build_system/build_system.dart @@ -113,7 +113,7 @@ abstract class Target { List get outputs; /// The action which performs this build step. - Future build(List inputFiles, Environment environment); + Future build(Environment environment); /// Collect hashes for all inputs to determine if any have changed. /// @@ -585,7 +585,7 @@ class _BuildInstance { } } else { printStatus('${target.name}: Starting'); - await target.build(inputs, environment); + await target.build(environment); printStatus('${target.name}: Complete'); final List outputs = target.resolveOutputs(environment, implicit: true); diff --git a/packages/flutter_tools/lib/src/build_system/targets/assets.dart b/packages/flutter_tools/lib/src/build_system/targets/assets.dart index 934fc0fa4c..3e19118545 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/assets.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/assets.dart @@ -74,7 +74,7 @@ class CopyAssets extends Target { ]; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final Directory output = environment .buildDir .childDirectory('flutter_assets'); @@ -128,7 +128,7 @@ class FlutterPlugins extends Target { ]; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { // The pubspec may change for reasons other than plugins changing, so we compare // the manifest before writing. Some hosting build systems use timestamps // so we need to be careful to avoid tricking them into doing more work than 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 008703065e..f9b450a18f 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/dart.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/dart.dart @@ -81,7 +81,7 @@ class KernelSnapshot extends Target { List get dependencies => []; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final KernelCompiler compiler = await kernelCompilerFactory.create( FlutterProject.fromDirectory(environment.projectDir), ); @@ -118,7 +118,7 @@ abstract class AotElfBase extends Target { const AotElfBase(); @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final AOTSnapshotter snapshotter = AOTSnapshotter(reportTimings: false); final String outputPath = environment.buildDir.path; if (environment.defines[kBuildMode] == null) { diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index e822240925..5b9510bdaa 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart @@ -20,7 +20,7 @@ abstract class AotAssemblyBase extends Target { const AotAssemblyBase(); @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final AOTSnapshotter snapshotter = AOTSnapshotter(reportTimings: false); final String outputPath = environment.buildDir.path; if (environment.defines[kBuildMode] == null) { 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 24af5b7d49..69c5af4402 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/linux.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/linux.dart @@ -36,12 +36,11 @@ class UnpackLinux extends Target { List get dependencies => []; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final String basePath = artifacts.getArtifactPath(Artifact.linuxDesktopPath); - for (File input in inputFiles) { - if (fs.path.basename(input.path) == 'linux.dart') { - continue; - } + for (File input in fs.directory(basePath) + .listSync(recursive: true) + .whereType()) { final String outputPath = fs.path.join( environment.projectDir.path, 'linux', diff --git a/packages/flutter_tools/lib/src/build_system/targets/macos.dart b/packages/flutter_tools/lib/src/build_system/targets/macos.dart index 19236379cd..74589bc029 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/macos.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/macos.dart @@ -113,7 +113,7 @@ abstract class UnpackMacOS extends Target { List get dependencies => []; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { if (environment.defines[kBuildMode] == null) { throw MissingDefineException(kBuildMode, 'unpack_macos'); } @@ -191,7 +191,7 @@ class DebugMacOSFramework extends Target { String get name => 'debug_macos_framework'; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { final File outputFile = fs.file(fs.path.join( environment.buildDir.path, 'App.framework', 'App')); outputFile.createSync(recursive: true); @@ -236,7 +236,7 @@ class CompileMacOSFramework extends Target { String get name => 'compile_macos_framework'; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { if (environment.defines[kBuildMode] == null) { throw MissingDefineException(kBuildMode, 'compile_macos_framework'); } @@ -302,7 +302,7 @@ abstract class MacOSBundleFlutterAssets extends Target { ]; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { if (environment.defines[kBuildMode] == null) { throw MissingDefineException(kBuildMode, 'compile_macos_framework'); } diff --git a/packages/flutter_tools/lib/src/build_system/targets/windows.dart b/packages/flutter_tools/lib/src/build_system/targets/windows.dart index cb97d35dfb..5aa66676bc 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/windows.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/windows.dart @@ -39,13 +39,12 @@ class UnpackWindows extends Target { List get dependencies => const []; @override - Future build(List inputFiles, Environment environment) async { + Future build(Environment environment) async { // This path needs to match the prefix in the rule below. final String basePath = artifacts.getArtifactPath(Artifact.windowsDesktopPath); - for (File input in inputFiles) { - if (fs.path.basename(input.path) == 'windows.dart') { - continue; - } + for (File input in fs.directory(basePath) + .listSync(recursive: true) + .whereType()) { final String outputPath = fs.path.join( environment.projectDir.path, 'windows', diff --git a/packages/flutter_tools/test/general.shard/build_system/build_system_test.dart b/packages/flutter_tools/test/general.shard/build_system/build_system_test.dart index 1b2017ecab..4dc5642b60 100644 --- a/packages/flutter_tools/test/general.shard/build_system/build_system_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/build_system_test.dart @@ -40,7 +40,7 @@ void main() { when(mockPlatform.isWindows).thenReturn(false); /// Create various testing targets. - fooTarget = TestTarget((List inputFiles, Environment environment) async { + fooTarget = TestTarget((Environment environment) async { environment .buildDir .childFile('out') @@ -56,7 +56,7 @@ void main() { Source.pattern('{BUILD_DIR}/out'), ] ..dependencies = []; - barTarget = TestTarget((List inputFiles, Environment environment) async { + barTarget = TestTarget((Environment environment) async { environment.buildDir .childFile('bar') ..createSync(recursive: true) @@ -71,7 +71,7 @@ void main() { Source.pattern('{BUILD_DIR}/bar'), ] ..dependencies = []; - fizzTarget = TestTarget((List inputFiles, Environment environment) async { + fizzTarget = TestTarget((Environment environment) async { throw Exception('something bad happens'); }) ..name = 'fizz' @@ -82,7 +82,7 @@ void main() { Source.pattern('{BUILD_DIR}/fizz'), ] ..dependencies = [fooTarget]; - sharedTarget = TestTarget((List inputFiles, Environment environment) async { + sharedTarget = TestTarget((Environment environment) async { shared += 1; }) ..name = 'shared' @@ -116,7 +116,7 @@ void main() { })); test('Throws exception if it does not produce a specified output', () => testbed.run(() async { - final Target badTarget = TestTarget((List inputFiles, Environment environment) async {}) + final Target badTarget = TestTarget((Environment environment) async {}) ..inputs = const [ Source.pattern('{PROJECT_DIR}/foo.dart'), ] @@ -251,10 +251,10 @@ T nonconst(T input) => input; class TestTarget extends Target { TestTarget([this._build]); - final Future Function(List inputFiles, Environment environment) _build; + final Future Function(Environment environment) _build; @override - Future build(List inputFiles, Environment environment) => _build(inputFiles, environment); + Future build(Environment environment) => _build(environment); @override List dependencies = []; diff --git a/packages/flutter_tools/test/general.shard/build_system/exceptions_test.dart b/packages/flutter_tools/test/general.shard/build_system/exceptions_test.dart index 2ee30119fc..f784131083 100644 --- a/packages/flutter_tools/test/general.shard/build_system/exceptions_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/exceptions_test.dart @@ -64,10 +64,10 @@ void main() { class TestTarget extends Target { TestTarget([this._build]); - final Future Function(List inputFiles, Environment environment) _build; + final Future Function(Environment environment) _build; @override - Future build(List inputFiles, Environment environment) => _build(inputFiles, environment); + Future build(Environment environment) => _build(environment); @override List dependencies = []; diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart index 7badd1969f..42f1ceaece 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart @@ -71,7 +71,7 @@ flutter: fs.file('pubspec.yaml') ..writeAsStringSync('name: foo\ndependencies:\n foo: any\n'); - await const FlutterPlugins().build([], Environment( + await const FlutterPlugins().build(Environment( outputDir: fs.currentDirectory, projectDir: fs.currentDirectory, )); 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 d30377a5ff..ceca14a67a 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 @@ -135,7 +135,7 @@ flutter_tools:lib/'''); return const CompilerOutput('example', 0, []); }); - await const KernelSnapshot().build([], androidEnvironment); + await const KernelSnapshot().build(androidEnvironment); }, overrides: { KernelCompilerFactory: () => MockKernelCompilerFactory(), })); @@ -159,7 +159,7 @@ flutter_tools:lib/'''); return const CompilerOutput('example', 0, []); }); - await const KernelSnapshot().build([], Environment( + await const KernelSnapshot().build(Environment( outputDir: fs.currentDirectory, projectDir: fs.currentDirectory, defines: { diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart index 398c0e8d24..319383e8b6 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart @@ -102,7 +102,7 @@ void main() { } return FakeProcessResult()..exitCode = 0; }); - await const DebugUnpackMacOS().build([], environment); + await const DebugUnpackMacOS().build(environment); expect(fs.directory('$_kOutputPrefix').existsSync(), true); for (File file in inputs) { @@ -116,7 +116,7 @@ void main() { ..createSync(recursive: true) ..writeAsStringSync('testing'); - expect(() async => await const DebugMacOSBundleFlutterAssets().build([], environment), + expect(() async => await const DebugMacOSBundleFlutterAssets().build(environment), throwsA(isInstanceOf())); })); @@ -137,7 +137,7 @@ void main() { ..createSync(recursive: true) ..writeAsStringSync('testing'); - await const DebugMacOSBundleFlutterAssets().build([], environment); + await const DebugMacOSBundleFlutterAssets().build(environment); expect(fs.file(outputKernel).readAsStringSync(), 'testing'); expect(fs.file(outputPlist).readAsStringSync(), contains('io.flutter.flutter.app')); @@ -156,7 +156,7 @@ void main() { 'flutter_assets', 'vm_snapshot_data'); final String precompiledIsolate = fs.path.join('App.framework', 'Resources', 'flutter_assets', 'isolate_snapshot_data'); - await const ProfileMacOSBundleFlutterAssets().build([], environment..defines[kBuildMode] = 'profile'); + await const ProfileMacOSBundleFlutterAssets().build(environment..defines[kBuildMode] = 'profile'); expect(fs.file(outputKernel).existsSync(), false); expect(fs.file(precompiledVm).existsSync(), false); @@ -186,7 +186,7 @@ void main() { # Generated sky_engine:file:///bin/cache/pkg/sky_engine/lib/ flutter_tools:lib/'''); - await const CompileMacOSFramework().build([], environment..defines[kBuildMode] = 'release'); + await const CompileMacOSFramework().build(environment..defines[kBuildMode] = 'release'); }, overrides: { GenSnapshot: () => MockGenSnapshot(), Xcode: () => MockXCode(),