44
55import 'package:meta/meta.dart' ;
66
7+ import '../android/android_sdk.dart' ;
8+ import '../base/file_system.dart' ;
9+ import '../base/logger.dart' ;
10+ import '../base/os.dart' ;
711import '../build_info.dart' ;
12+ import '../build_system/build_system.dart' ;
813import '../commands/build_linux.dart' ;
914import '../commands/build_macos.dart' ;
1015import '../commands/build_windows.dart' ;
11- import '../globals.dart' as globals;
1216import '../runner/flutter_command.dart' ;
1317import 'build_aar.dart' ;
1418import 'build_apk.dart' ;
@@ -20,28 +24,49 @@ import 'build_macos_framework.dart';
2024import 'build_web.dart' ;
2125
2226class BuildCommand extends FlutterCommand {
23- BuildCommand ({ bool verboseHelp = false }) {
24- _addSubcommand (BuildAarCommand (verboseHelp: verboseHelp));
25- _addSubcommand (BuildApkCommand (verboseHelp: verboseHelp));
26- _addSubcommand (BuildAppBundleCommand (verboseHelp: verboseHelp));
27- _addSubcommand (BuildIOSCommand (verboseHelp: verboseHelp));
27+ BuildCommand ({
28+ required FileSystem fileSystem,
29+ required BuildSystem buildSystem,
30+ required OperatingSystemUtils osUtils,
31+ required Logger logger,
32+ required AndroidSdk ? androidSdk,
33+ bool verboseHelp = false ,
34+ }){
35+ _addSubcommand (
36+ BuildAarCommand (
37+ fileSystem: fileSystem,
38+ androidSdk: androidSdk,
39+ logger: logger,
40+ verboseHelp: verboseHelp,
41+ )
42+ );
43+ _addSubcommand (BuildApkCommand (logger: logger, verboseHelp: verboseHelp));
44+ _addSubcommand (BuildAppBundleCommand (logger: logger, verboseHelp: verboseHelp));
45+ _addSubcommand (BuildIOSCommand (logger: logger, verboseHelp: verboseHelp));
2846 _addSubcommand (BuildIOSFrameworkCommand (
29- buildSystem: globals.buildSystem,
47+ logger: logger,
48+ buildSystem: buildSystem,
3049 verboseHelp: verboseHelp,
3150 ));
3251 _addSubcommand (BuildMacOSFrameworkCommand (
33- buildSystem: globals.buildSystem,
52+ logger: logger,
53+ buildSystem: buildSystem,
3454 verboseHelp: verboseHelp,
3555 ));
36- _addSubcommand (BuildIOSArchiveCommand (verboseHelp: verboseHelp));
37- _addSubcommand (BuildBundleCommand (verboseHelp: verboseHelp));
38- _addSubcommand (BuildWebCommand (verboseHelp: verboseHelp));
39- _addSubcommand (BuildMacosCommand (verboseHelp: verboseHelp));
56+ _addSubcommand (BuildIOSArchiveCommand (logger: logger, verboseHelp: verboseHelp));
57+ _addSubcommand (BuildBundleCommand (logger: logger, verboseHelp: verboseHelp));
58+ _addSubcommand (BuildWebCommand (
59+ fileSystem: fileSystem,
60+ logger: logger,
61+ verboseHelp: verboseHelp,
62+ ));
63+ _addSubcommand (BuildMacosCommand (logger: logger, verboseHelp: verboseHelp));
4064 _addSubcommand (BuildLinuxCommand (
41- operatingSystemUtils: globals.os,
65+ logger: logger,
66+ operatingSystemUtils: osUtils,
4267 verboseHelp: verboseHelp
4368 ));
44- _addSubcommand (BuildWindowsCommand (verboseHelp: verboseHelp));
69+ _addSubcommand (BuildWindowsCommand (logger : logger, verboseHelp: verboseHelp));
4570 }
4671
4772 void _addSubcommand (BuildSubCommand command) {
@@ -64,11 +89,16 @@ class BuildCommand extends FlutterCommand {
6489}
6590
6691abstract class BuildSubCommand extends FlutterCommand {
67- BuildSubCommand ({required bool verboseHelp}) {
92+ BuildSubCommand ({
93+ required Logger logger,
94+ required bool verboseHelp
95+ }): _logger = logger {
6896 requiresPubspecYaml ();
6997 usesFatalWarningsOption (verboseHelp: verboseHelp);
7098 }
7199
100+ final Logger _logger;
101+
72102 @override
73103 bool get reportNullSafety => true ;
74104
@@ -80,21 +110,21 @@ abstract class BuildSubCommand extends FlutterCommand {
80110 /// This is similar to the run message in run_hot.dart
81111 @protected
82112 void displayNullSafetyMode (BuildInfo buildInfo) {
83- globals .printStatus ('' );
113+ _logger .printStatus ('' );
84114 if (buildInfo.nullSafetyMode == NullSafetyMode .sound) {
85- globals .printStatus (
115+ _logger .printStatus (
86116 '💪 Building with sound null safety 💪' ,
87117 emphasis: true ,
88118 );
89119 } else {
90- globals .printStatus (
120+ _logger .printStatus (
91121 'Building without sound null safety ⚠️' ,
92122 emphasis: true ,
93123 );
94- globals .printStatus (
124+ _logger .printStatus (
95125 'Dart 3 will only support sound null safety, see https://dart.dev/null-safety' ,
96126 );
97127 }
98- globals .printStatus ('' );
128+ _logger .printStatus ('' );
99129 }
100130}
0 commit comments