Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
9492e13c
Unverified
Commit
9492e13c
authored
Jul 22, 2021
by
Ahmed Ashour
Committed by
GitHub
Jul 22, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reland [flutter_tools] show only supported sub commands (#86153)
parent
93b358f9
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
60 additions
and
22 deletions
+60
-22
build.dart
packages/flutter_tools/lib/src/commands/build.dart
+21
-13
build_fuchsia.dart
packages/flutter_tools/lib/src/commands/build_fuchsia.dart
+4
-1
build_ios.dart
packages/flutter_tools/lib/src/commands/build_ios.dart
+4
-1
build_ios_framework.dart
...s/flutter_tools/lib/src/commands/build_ios_framework.dart
+4
-1
build_macos.dart
packages/flutter_tools/lib/src/commands/build_macos.dart
+4
-1
build_fuchsia_test.dart
...ools/test/commands.shard/hermetic/build_fuchsia_test.dart
+4
-1
build_ios_test.dart
...er_tools/test/commands.shard/hermetic/build_ios_test.dart
+4
-1
build_ipa_test.dart
...er_tools/test/commands.shard/hermetic/build_ipa_test.dart
+4
-1
build_macos_test.dart
..._tools/test/commands.shard/hermetic/build_macos_test.dart
+3
-2
build_test.dart
...flutter_tools/test/general.shard/commands/build_test.dart
+8
-0
No files found.
packages/flutter_tools/lib/src/commands/build.dart
View file @
9492e13c
...
...
@@ -24,25 +24,31 @@ import 'build_winuwp.dart';
class
BuildCommand
extends
FlutterCommand
{
BuildCommand
({
bool
verboseHelp
=
false
})
{
addSubcommand
(
BuildAarCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildApkCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildAppBundleCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildIOSCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildIOSFrameworkCommand
(
_
addSubcommand
(
BuildAarCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildApkCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildAppBundleCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildIOSCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildIOSFrameworkCommand
(
buildSystem:
globals
.
buildSystem
,
verboseHelp:
verboseHelp
,
));
addSubcommand
(
BuildIOSArchiveCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildBundleCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildWebCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildMacosCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildLinuxCommand
(
_
addSubcommand
(
BuildIOSArchiveCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildBundleCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildWebCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildMacosCommand
(
verboseHelp:
verboseHelp
));
_
addSubcommand
(
BuildLinuxCommand
(
operatingSystemUtils:
globals
.
os
,
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildWindowsCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildWindowsUwpCommand
(
verboseHelp:
verboseHelp
));
addSubcommand
(
BuildFuchsiaCommand
(
verboseHelp:
verboseHelp
));
_addSubcommand
(
BuildWindowsCommand
(
verboseHelp:
verboseHelp
));
_addSubcommand
(
BuildWindowsUwpCommand
(
verboseHelp:
verboseHelp
));
_addSubcommand
(
BuildFuchsiaCommand
(
verboseHelp:
verboseHelp
));
}
void
_addSubcommand
(
BuildSubCommand
command
)
{
if
(
command
.
supported
)
{
addSubcommand
(
command
);
}
}
@override
...
...
@@ -63,6 +69,8 @@ abstract class BuildSubCommand extends FlutterCommand {
@override
bool
get
reportNullSafety
=>
true
;
bool
get
supported
=>
true
;
/// Display a message describing the current null safety runtime mode
/// that was selected.
///
...
...
packages/flutter_tools/lib/src/commands/build_fuchsia.dart
View file @
9492e13c
...
...
@@ -58,6 +58,9 @@ class BuildFuchsiaCommand extends BuildSubCommand {
@override
String
get
description
=>
'Build the Fuchsia target (Experimental).'
;
@override
bool
get
supported
=>
globals
.
platform
.
isLinux
||
globals
.
platform
.
isMacOS
;
@override
Future
<
FlutterCommandResult
>
runCommand
()
async
{
if
(!
featureFlags
.
isFuchsiaEnabled
)
{
...
...
@@ -68,7 +71,7 @@ class BuildFuchsiaCommand extends BuildSubCommand {
}
final
BuildInfo
buildInfo
=
await
getBuildInfo
();
final
FlutterProject
flutterProject
=
FlutterProject
.
current
();
if
(!
globals
.
platform
.
isLinux
&&
!
globals
.
platform
.
isMacOS
)
{
if
(!
supported
)
{
throwToolExit
(
'"build fuchsia" is only supported on Linux and MacOS hosts.'
);
}
if
(!
flutterProject
.
fuchsia
.
existsSync
())
{
...
...
packages/flutter_tools/lib/src/commands/build_ios.dart
View file @
9492e13c
...
...
@@ -224,12 +224,15 @@ abstract class _BuildIOSSubCommand extends BuildSubCommand {
Directory
_outputAppDirectory
(
String
xcodeResultOutput
);
@override
bool
get
supported
=>
globals
.
platform
.
isMacOS
;
@override
Future
<
FlutterCommandResult
>
runCommand
()
async
{
defaultBuildMode
=
forSimulator
?
BuildMode
.
debug
:
BuildMode
.
release
;
final
BuildInfo
buildInfo
=
await
getBuildInfo
();
if
(!
globals
.
platform
.
isMacOS
)
{
if
(!
supported
)
{
throwToolExit
(
'Building for iOS is only supported on macOS.'
);
}
if
(
forSimulator
&&
!
buildInfo
.
supportsSimulator
)
{
...
...
packages/flutter_tools/lib/src/commands/build_ios_framework.dart
View file @
9492e13c
...
...
@@ -141,11 +141,14 @@ class BuildIOSFrameworkCommand extends BuildSubCommand {
return
buildInfos
;
}
@override
bool
get
supported
=>
_platform
.
isMacOS
;
@override
Future
<
void
>
validateCommand
()
async
{
await
super
.
validateCommand
();
_project
=
FlutterProject
.
current
();
if
(!
_platform
.
isMacOS
)
{
if
(!
supported
)
{
throwToolExit
(
'Building frameworks for iOS is only supported on the Mac.'
);
}
...
...
packages/flutter_tools/lib/src/commands/build_macos.dart
View file @
9492e13c
...
...
@@ -39,6 +39,9 @@ class BuildMacosCommand extends BuildSubCommand {
@override
String
get
description
=>
'Build a macOS desktop application.'
;
@override
bool
get
supported
=>
globals
.
platform
.
isMacOS
;
@override
Future
<
FlutterCommandResult
>
runCommand
()
async
{
final
BuildInfo
buildInfo
=
await
getBuildInfo
();
...
...
@@ -46,7 +49,7 @@ class BuildMacosCommand extends BuildSubCommand {
if
(!
featureFlags
.
isMacOSEnabled
)
{
throwToolExit
(
'"build macos" is not currently supported. To enable, run "flutter config --enable-macos-desktop".'
);
}
if
(!
globals
.
platform
.
isMacOS
)
{
if
(!
supported
)
{
throwToolExit
(
'"build macos" only supported on macOS hosts.'
);
}
displayNullSafetyMode
(
buildInfo
);
...
...
packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart
View file @
9492e13c
...
...
@@ -4,6 +4,7 @@
// @dart = 2.8
import
'package:args/command_runner.dart'
;
import
'package:file/memory.dart'
;
import
'package:file_testing/file_testing.dart'
;
import
'package:flutter_tools/src/base/file_system.dart'
;
...
...
@@ -11,6 +12,7 @@ import 'package:flutter_tools/src/base/platform.dart';
import
'package:flutter_tools/src/build_info.dart'
;
import
'package:flutter_tools/src/cache.dart'
;
import
'package:flutter_tools/src/commands/build.dart'
;
import
'package:flutter_tools/src/commands/build_fuchsia.dart'
;
import
'package:flutter_tools/src/features.dart'
;
import
'package:flutter_tools/src/fuchsia/fuchsia_kernel_compiler.dart'
;
import
'package:flutter_tools/src/fuchsia/fuchsia_pm.dart'
;
...
...
@@ -109,9 +111,10 @@ void main() {
final
File
pubspecFile
=
fileSystem
.
file
(
'pubspec.yaml'
)..
createSync
();
pubspecFile
.
writeAsStringSync
(
'name:
$appName
'
);
final
bool
supported
=
BuildFuchsiaCommand
(
verboseHelp:
false
).
supported
;
expect
(
createTestCommandRunner
(
command
).
run
(
const
<
String
>[
'build'
,
'fuchsia'
]),
throwsToolExit
(
),
supported
?
throwsToolExit
()
:
throwsA
(
isA
<
UsageException
>()
),
);
},
overrides:
<
Type
,
Generator
>{
Platform:
()
=>
windowsPlatform
,
...
...
packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart
View file @
9492e13c
...
...
@@ -4,11 +4,13 @@
// @dart = 2.8
import
'package:args/command_runner.dart'
;
import
'package:file/memory.dart'
;
import
'package:flutter_tools/src/base/file_system.dart'
;
import
'package:flutter_tools/src/base/platform.dart'
;
import
'package:flutter_tools/src/cache.dart'
;
import
'package:flutter_tools/src/commands/build.dart'
;
import
'package:flutter_tools/src/commands/build_ios.dart'
;
import
'package:flutter_tools/src/ios/xcodeproj.dart'
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
...
...
@@ -160,9 +162,10 @@ void main() {
fileSystem
.
file
(
fileSystem
.
path
.
join
(
'lib'
,
'main.dart'
))
.
createSync
(
recursive:
true
);
final
bool
supported
=
BuildIOSCommand
(
verboseHelp:
false
).
supported
;
expect
(
createTestCommandRunner
(
command
).
run
(
const
<
String
>[
'build'
,
'ios'
,
'--no-pub'
]
),
throwsToolExit
(
));
),
supported
?
throwsToolExit
()
:
throwsA
(
isA
<
UsageException
>()
));
},
overrides:
<
Type
,
Generator
>{
Platform:
()
=>
notMacosPlatform
,
FileSystem:
()
=>
fileSystem
,
...
...
packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart
View file @
9492e13c
...
...
@@ -4,12 +4,14 @@
// @dart = 2.8
import
'package:args/command_runner.dart'
;
import
'package:file/memory.dart'
;
import
'package:flutter_tools/src/base/file_system.dart'
;
import
'package:flutter_tools/src/base/logger.dart'
;
import
'package:flutter_tools/src/base/platform.dart'
;
import
'package:flutter_tools/src/cache.dart'
;
import
'package:flutter_tools/src/commands/build.dart'
;
import
'package:flutter_tools/src/commands/build_ios.dart'
;
import
'package:flutter_tools/src/ios/xcodeproj.dart'
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
...
...
@@ -155,9 +157,10 @@ void main() {
fileSystem
.
file
(
fileSystem
.
path
.
join
(
'lib'
,
'main.dart'
))
.
createSync
(
recursive:
true
);
final
bool
supported
=
BuildIOSArchiveCommand
(
verboseHelp:
false
).
supported
;
expect
(
createTestCommandRunner
(
command
).
run
(
const
<
String
>[
'build'
,
'ipa'
,
'--no-pub'
]
),
throwsToolExit
(
));
),
supported
?
throwsToolExit
()
:
throwsA
(
isA
<
UsageException
>()
));
},
overrides:
<
Type
,
Generator
>{
Platform:
()
=>
notMacosPlatform
,
FileSystem:
()
=>
fileSystem
,
...
...
packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart
View file @
9492e13c
...
...
@@ -149,7 +149,7 @@ void main() {
expect
(
createTestCommandRunner
(
command
).
run
(
const
<
String
>[
'build'
,
'macos'
,
'--no-pub'
]
),
throws
ToolExit
(
message:
'"build macos" only supported on macOS hosts.'
));
),
throws
A
(
isA
<
UsageException
>()
));
},
overrides:
<
Type
,
Generator
>{
Platform:
()
=>
notMacosPlatform
,
FileSystem:
()
=>
fileSystem
,
...
...
@@ -390,8 +390,9 @@ void main() {
testUsingContext
(
'Refuses to build for macOS when feature is disabled'
,
()
{
final
CommandRunner
<
void
>
runner
=
createTestCommandRunner
(
BuildCommand
());
final
bool
supported
=
BuildMacosCommand
(
verboseHelp:
false
).
supported
;
expect
(()
=>
runner
.
run
(<
String
>[
'build'
,
'macos'
,
'--no-pub'
]),
throwsToolExit
(
));
supported
?
throwsToolExit
()
:
throwsA
(
isA
<
UsageException
>()
));
},
overrides:
<
Type
,
Generator
>{
FeatureFlags:
()
=>
TestFeatureFlags
(
isMacOSEnabled:
false
),
});
...
...
packages/flutter_tools/test/general.shard/commands/build_test.dart
View file @
9492e13c
...
...
@@ -5,6 +5,7 @@
// @dart = 2.8
import
'package:args/args.dart'
;
import
'package:args/command_runner.dart'
;
import
'package:flutter_tools/src/build_info.dart'
;
import
'package:flutter_tools/src/commands/attach.dart'
;
import
'package:flutter_tools/src/commands/build.dart'
;
...
...
@@ -75,6 +76,13 @@ void main() {
FakeBuildSubCommand
().
test
(
sound
);
expect
(
testLogger
.
statusText
,
contains
(
'💪 Building with sound null safety 💪'
));
});
testUsingContext
(
'Include only supported sub commands'
,
()
{
final
BuildCommand
command
=
BuildCommand
();
for
(
final
Command
<
void
>
x
in
command
.
subcommands
.
values
)
{
expect
((
x
as
BuildSubCommand
).
supported
,
isTrue
);
}
});
}
class
FakeBuildSubCommand
extends
BuildSubCommand
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment