Jackson Gardner 5a9fa1e7bf
Dual compile reland (#143262)
This is an attempt at a reland of https://github.com/flutter/flutter/pull/141396

The main changes here that are different than the original PR is fixes to wire up the `flutter test` command properly with the web renderer.
2024-02-13 20:02:10 +00:00

59 lines
1.5 KiB
Dart

// 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 '../base/file_system.dart';
import '../web/compiler_config.dart';
import './build_system.dart';
/// Commonly used build [Target]s.
abstract class BuildTargets {
const BuildTargets();
Target get copyFlutterBundle;
Target get releaseCopyFlutterBundle;
Target get generateLocalizationsTarget;
Target get dartPluginRegistrantTarget;
Target webServiceWorker(FileSystem fileSystem, List<WebCompilerConfig> compileConfigs);
}
/// BuildTargets that return NoOpTarget for every action.
class NoOpBuildTargets extends BuildTargets {
const NoOpBuildTargets();
@override
Target get copyFlutterBundle => const _NoOpTarget();
@override
Target get releaseCopyFlutterBundle => const _NoOpTarget();
@override
Target get generateLocalizationsTarget => const _NoOpTarget();
@override
Target get dartPluginRegistrantTarget => const _NoOpTarget();
@override
Target webServiceWorker(FileSystem fileSystem, List<WebCompilerConfig> compileConfigs) => const _NoOpTarget();
}
/// A [Target] that does nothing.
class _NoOpTarget extends Target {
const _NoOpTarget();
@override
String get name => 'no_op';
@override
List<Source> get inputs => const <Source>[];
@override
List<Source> get outputs => const <Source>[];
@override
List<Target> get dependencies => const <Target>[];
@override
Future<void> build(Environment environment) async {}
}