Unverified Commit 0ad0dc25 authored by Christopher Fujino's avatar Christopher Fujino Committed by GitHub

[flutter_tools] fix missing cmake (#103761)

parent 90a592bf
...@@ -124,7 +124,9 @@ Future<void> _runCmake(String buildModeName, Directory sourceDir, Directory buil ...@@ -124,7 +124,9 @@ Future<void> _runCmake(String buildModeName, Directory sourceDir, Directory buil
final bool needCrossBuildOptionsForArm64 = needCrossBuild final bool needCrossBuildOptionsForArm64 = needCrossBuild
&& targetPlatform == TargetPlatform.linux_arm64; && targetPlatform == TargetPlatform.linux_arm64;
int result; int result;
try { if (!globals.processManager.canRun('cmake')) {
throwToolExit(globals.userMessages.cmakeMissing);
}
result = await globals.processUtils.stream( result = await globals.processUtils.stream(
<String>[ <String>[
'cmake', 'cmake',
...@@ -149,9 +151,6 @@ Future<void> _runCmake(String buildModeName, Directory sourceDir, Directory buil ...@@ -149,9 +151,6 @@ Future<void> _runCmake(String buildModeName, Directory sourceDir, Directory buil
}, },
trace: true, trace: true,
); );
} on ArgumentError {
throwToolExit("cmake not found. Run 'flutter doctor' for more information.");
}
if (result != 0) { if (result != 0) {
throwToolExit('Unable to generate build files'); throwToolExit('Unable to generate build files');
} }
......
...@@ -172,18 +172,15 @@ void main() { ...@@ -172,18 +172,15 @@ void main() {
OperatingSystemUtils: () => FakeOperatingSystemUtils(), OperatingSystemUtils: () => FakeOperatingSystemUtils(),
}); });
testUsingContext('Handles argument error from missing cmake', () async { testUsingContext('Handles missing cmake', () async {
final BuildCommand command = BuildCommand(); final BuildCommand command = BuildCommand();
setUpMockProjectFilesForBuild(); setUpMockProjectFilesForBuild();
processManager = FakeProcessManager.list(<FakeCommand>[ processManager = FakeProcessManager.empty()
cmakeCommand('release', onRun: () { ..excludedExecutables.add('cmake');
throw ArgumentError();
}),
]);
expect(createTestCommandRunner(command).run( expect(createTestCommandRunner(command).run(
const <String>['build', 'linux', '--no-pub'] const <String>['build', 'linux', '--no-pub']
), throwsToolExit(message: "cmake not found. Run 'flutter doctor' for more information.")); ), throwsToolExit(message: 'CMake is required for Linux development.'));
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
FileSystem: () => fileSystem, FileSystem: () => fileSystem,
ProcessManager: () => processManager, ProcessManager: () => processManager,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment