• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2018 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5import 'dart:async';
6
7import 'android/android_sdk.dart';
8import 'android/android_studio.dart';
9import 'android/android_workflow.dart';
10import 'application_package.dart';
11import 'artifacts.dart';
12import 'asset.dart';
13import 'base/build.dart';
14import 'base/config.dart';
15import 'base/context.dart';
16import 'base/flags.dart';
17import 'base/io.dart';
18import 'base/logger.dart';
19import 'base/os.dart';
20import 'base/platform.dart';
21import 'base/time.dart';
22import 'base/user_messages.dart';
23import 'base/utils.dart';
24import 'build_system/build_system.dart';
25import 'cache.dart';
26import 'compile.dart';
27import 'devfs.dart';
28import 'device.dart';
29import 'doctor.dart';
30import 'emulator.dart';
31import 'features.dart';
32import 'fuchsia/fuchsia_device.dart' show FuchsiaDeviceTools;
33import 'fuchsia/fuchsia_sdk.dart' show FuchsiaSdk, FuchsiaArtifacts;
34import 'fuchsia/fuchsia_workflow.dart' show FuchsiaWorkflow;
35import 'ios/ios_workflow.dart';
36import 'ios/mac.dart';
37import 'ios/simulators.dart';
38import 'ios/xcodeproj.dart';
39import 'linux/linux_workflow.dart';
40import 'macos/cocoapods.dart';
41import 'macos/cocoapods_validator.dart';
42import 'macos/macos_workflow.dart';
43import 'macos/xcode.dart';
44import 'macos/xcode_validator.dart';
45import 'reporting/reporting.dart';
46import 'run_hot.dart';
47import 'version.dart';
48import 'web/chrome.dart';
49import 'web/workflow.dart';
50import 'windows/visual_studio.dart';
51import 'windows/visual_studio_validator.dart';
52import 'windows/windows_workflow.dart';
53
54Future<T> runInContext<T>(
55  FutureOr<T> runner(), {
56  Map<Type, Generator> overrides,
57}) async {
58  return await context.run<T>(
59    name: 'global fallbacks',
60    body: runner,
61    overrides: overrides,
62    fallbacks: <Type, Generator>{
63      AndroidLicenseValidator: () => AndroidLicenseValidator(),
64      AndroidSdk: AndroidSdk.locateAndroidSdk,
65      AndroidStudio: AndroidStudio.latestValid,
66      AndroidValidator: () => AndroidValidator(),
67      AndroidWorkflow: () => AndroidWorkflow(),
68      ApplicationPackageFactory: () => ApplicationPackageFactory(),
69      Artifacts: () => CachedArtifacts(),
70      AssetBundleFactory: () => AssetBundleFactory.defaultInstance,
71      BotDetector: () => const BotDetector(),
72      BuildSystem: () => const BuildSystem(),
73      Cache: () => Cache(),
74      ChromeLauncher: () => const ChromeLauncher(),
75      CocoaPods: () => CocoaPods(),
76      CocoaPodsValidator: () => const CocoaPodsValidator(),
77      Config: () => Config(),
78      DevFSConfig: () => DevFSConfig(),
79      DeviceManager: () => DeviceManager(),
80      Doctor: () => const Doctor(),
81      DoctorValidatorsProvider: () => DoctorValidatorsProvider.defaultInstance,
82      EmulatorManager: () => EmulatorManager(),
83      FeatureFlags: () => const FeatureFlags(),
84      Flags: () => const EmptyFlags(),
85      FlutterVersion: () => FlutterVersion(const SystemClock()),
86      FuchsiaArtifacts: () => FuchsiaArtifacts.find(),
87      FuchsiaDeviceTools: () => FuchsiaDeviceTools(),
88      FuchsiaSdk: () => FuchsiaSdk(),
89      FuchsiaWorkflow: () => FuchsiaWorkflow(),
90      GenSnapshot: () => const GenSnapshot(),
91      HotRunnerConfig: () => HotRunnerConfig(),
92      IMobileDevice: () => IMobileDevice(),
93      IOSSimulatorUtils: () => IOSSimulatorUtils(),
94      IOSWorkflow: () => const IOSWorkflow(),
95      KernelCompilerFactory: () => const KernelCompilerFactory(),
96      LinuxWorkflow: () => const LinuxWorkflow(),
97      Logger: () => platform.isWindows ? WindowsStdoutLogger() : StdoutLogger(),
98      MacOSWorkflow: () => const MacOSWorkflow(),
99      OperatingSystemUtils: () => OperatingSystemUtils(),
100      SimControl: () => SimControl(),
101      Stdio: () => const Stdio(),
102      SystemClock: () => const SystemClock(),
103      TimeoutConfiguration: () => const TimeoutConfiguration(),
104      Usage: () => Usage(),
105      UserMessages: () => UserMessages(),
106      VisualStudio: () => VisualStudio(),
107      VisualStudioValidator: () => const VisualStudioValidator(),
108      WebWorkflow: () => const WebWorkflow(),
109      WindowsWorkflow: () => const WindowsWorkflow(),
110      Xcode: () => Xcode(),
111      XcodeValidator: () => const XcodeValidator(),
112      XcodeProjectInterpreter: () => XcodeProjectInterpreter(),
113    },
114  );
115}
116