mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Merge pull request #529 from abarth/bogus_engine_dir
flutter build --engine-src-dir=<garbage> produces poor error message
This commit is contained in:
commit
19438d80de
@ -178,6 +178,12 @@ class FlutterCommandRunner extends CommandRunner {
|
||||
return 0;
|
||||
}
|
||||
|
||||
String _tryEnginePath(String enginePath) {
|
||||
if (FileSystemEntity.isDirectorySync(path.join(enginePath, 'out')))
|
||||
return enginePath;
|
||||
return null;
|
||||
}
|
||||
|
||||
String _findEnginePath(ArgResults globalResults) {
|
||||
String engineSourcePath = globalResults['engine-src-path'] ?? Platform.environment[kFlutterEngineEnvironmentVariableName];
|
||||
bool isDebug = globalResults['debug'];
|
||||
@ -194,14 +200,10 @@ class FlutterCommandRunner extends CommandRunner {
|
||||
engineSourcePath = null;
|
||||
} on FileSystemException { }
|
||||
}
|
||||
if (engineSourcePath == null) {
|
||||
String tryEnginePath(String enginePath) {
|
||||
if (FileSystemEntity.isDirectorySync(path.join(enginePath, 'out')))
|
||||
return enginePath;
|
||||
return null;
|
||||
}
|
||||
engineSourcePath = tryEnginePath(path.join(ArtifactStore.flutterRoot, '../engine/src'));
|
||||
}
|
||||
|
||||
if (engineSourcePath == null)
|
||||
engineSourcePath = _tryEnginePath(path.join(ArtifactStore.flutterRoot, '../engine/src'));
|
||||
|
||||
if (engineSourcePath == null) {
|
||||
stderr.writeln('Unable to detect local Flutter engine build directory.\n'
|
||||
'Either specify a dependency_override for the $kFlutterEnginePackageName package in your pubspec.yaml and\n'
|
||||
@ -211,6 +213,13 @@ class FlutterCommandRunner extends CommandRunner {
|
||||
}
|
||||
}
|
||||
|
||||
if (engineSourcePath != null && _tryEnginePath(engineSourcePath) == null) {
|
||||
stderr.writeln('Unable to detect a Flutter engine build directory in $engineSourcePath.\n'
|
||||
'Please ensure that $engineSourcePath is a Flutter engine \'src\' directory and that\n'
|
||||
'you have compiled the engine in that directory, which should produce an \'out\' directory');
|
||||
throw new ProcessExit(2);
|
||||
}
|
||||
|
||||
return engineSourcePath;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user