// 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:unified_analytics/unified_analytics.dart'; 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 compileConfigs, Analytics analytics, ); } /// 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 compileConfigs, Analytics analytics, ) => const _NoOpTarget(); } /// A [Target] that does nothing. class _NoOpTarget extends Target { const _NoOpTarget(); @override String get name => 'no_op'; @override List get inputs => const []; @override List get outputs => const []; @override List get dependencies => const []; @override Future build(Environment environment) async {} }