diff --git a/packages/flutter_tools/lib/src/run_mojo.dart b/packages/flutter_tools/lib/src/run_mojo.dart index 5bfb8edb8f6..cdc765b8c92 100644 --- a/packages/flutter_tools/lib/src/run_mojo.dart +++ b/packages/flutter_tools/lib/src/run_mojo.dart @@ -22,6 +22,9 @@ class RunMojoCommand extends Command { final description = 'Run a Flutter app in mojo.'; RunMojoCommand() { argParser.addFlag('android', negatable: false, help: 'Run on an Android device'); + argParser.addFlag('mojo-debug', negatable: false, help: 'Use Debug build of mojo'); + argParser.addFlag('mojo-release', negatable: false, help: 'Use Release build of mojo (default)'); + argParser.addOption('app', defaultsTo: 'app.flx'); argParser.addOption('mojo-path', help: 'Path to directory containing mojo_shell and services'); argParser.addOption('package-root', defaultsTo: 'packages'); @@ -40,9 +43,10 @@ class RunMojoCommand extends Command { String command = await _makePathAbsolute(path.join(results['mojo-path'], 'mojo', 'devtools', 'common', 'mojo_run')); String appName = path.basename(appPath); String appDir = path.dirname(appPath); + String buildFlag = argResults['mojo-debug'] ? '--debug' : '--release'; List args = [ '--android', - '--release', + buildFlag, 'http://app/$appName', '--map-origin=http://app/=$appDir', '--map-origin=http://sky_viewer/=$skyViewerUrl', @@ -60,7 +64,8 @@ class RunMojoCommand extends Command { Future _runLinux(ArgResults results, String appPath, ArtifactStore artifacts) async { String viewerPath = await _makePathAbsolute(await artifacts.getPath(Artifact.SkyViewerMojo)); - String mojoShellPath = await _makePathAbsolute(path.join(results['mojo-path'], 'out', 'Release', 'mojo_shell')); + String mojoBuildType = argResults['mojo-debug'] ? 'Debug' : 'Release'; + String mojoShellPath = await _makePathAbsolute(path.join(results['mojo-path'], 'out', mojoBuildType, 'mojo_shell')); List args = [ 'file://${appPath}', '--url-mappings=mojo:sky_viewer=file://${viewerPath}' @@ -75,6 +80,10 @@ class RunMojoCommand extends Command { _logging.severe('Must specify --mojo-path to mojo_run'); return 1; } + if (argResults['mojo-debug'] && argResults['mojo-release']) { + _logging.severe('Cannot specify both --mojo-debug and --mojo-release'); + return 1; + } String packageRoot = argResults['package-root']; ArtifactStore artifacts = new ArtifactStore(packageRoot); String appPath = await _makePathAbsolute(argResults['app']);