rename the --develop option to --debug (#3384)
* rename the --develop option to --debug
* fail if both --debug and --deploy are specified
diff --git a/packages/flutter_tools/lib/src/build_configuration.dart b/packages/flutter_tools/lib/src/build_configuration.dart
index 8e573d3..a352bc1 100644
--- a/packages/flutter_tools/lib/src/build_configuration.dart
+++ b/packages/flutter_tools/lib/src/build_configuration.dart
@@ -15,15 +15,15 @@
debug,
}
-/// The type of build - `develop` or `deploy`.
+/// The type of build - `debug` or `deploy`.
///
-/// TODO(devoncarew): Add a `profile` variant.
-enum BuildVariant {
- develop,
+/// TODO(devoncarew): Add a `profile` mode.
+enum BuildMode {
+ debug,
deploy
}
-String getVariantName(BuildVariant variant) => getEnumName(variant);
+String getModeName(BuildMode mode) => getEnumName(mode);
enum HostPlatform {
darwin_x64,
diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart
index 7703f3c..a723ec1 100644
--- a/packages/flutter_tools/lib/src/commands/build_apk.dart
+++ b/packages/flutter_tools/lib/src/commands/build_apk.dart
@@ -137,14 +137,8 @@
class BuildApkCommand extends FlutterCommand {
BuildApkCommand() {
- argParser.addFlag('develop',
- negatable: false,
- help: 'Build a development version of your app (the default).');
- argParser.addFlag('deploy',
- negatable: false,
- help: 'Build a deployable version of your app.');
-
usesTargetOption();
+ addBuildModeFlags();
usesPubOption();
argParser.addOption('manifest',
@@ -176,7 +170,7 @@
@override
final String description = 'Build an Android APK file from your app.\n\n'
- 'This command can build development and deployable versions of your application. \'develop\' builds\n'
+ 'This command can build development and deployable versions of your application. \'debug\' builds\n'
'support debugging and a quick development cycle. \'deploy\' builds don\'t support debugging and are\n'
'suitable for deploying to app stores.';
@@ -195,16 +189,13 @@
return 1;
}
- BuildVariant variant = BuildVariant.develop;
-
- if (argResults['deploy'])
- variant = BuildVariant.deploy;
+ BuildMode mode = getBuildMode();
// TODO(devoncarew): This command should take an arg for the output type (arm / x64).
return await buildAndroid(
TargetPlatform.android_arm,
- variant,
+ mode,
toolchain: toolchain,
force: true,
manifest: argResults['manifest'],
@@ -224,7 +215,7 @@
Future<_ApkComponents> _findApkComponents(
TargetPlatform platform,
- BuildVariant buildVariant,
+ BuildMode buildMode,
String manifest,
String resources
) async {
@@ -235,7 +226,7 @@
if (tools.isLocalEngine) {
String abiDir = platform == TargetPlatform.android_arm ? 'armeabi-v7a' : 'x86_64';
String enginePath = tools.engineSrcPath;
- String buildDir = tools.getEngineArtifactsDirectory(platform, buildVariant).path;
+ String buildDir = tools.getEngineArtifactsDirectory(platform, buildMode).path;
components.icuData = new File('$enginePath/third_party/icu/android/icudtl.dat');
components.jars = <File>[
@@ -244,7 +235,7 @@
components.libSkyShell = new File('$buildDir/gen/sky/shell/shell/shell/libs/$abiDir/libsky_shell.so');
components.debugKeystore = new File('$enginePath/build/android/ant/chromium-debug.keystore');
} else {
- Directory artifacts = tools.getEngineArtifactsDirectory(platform, buildVariant);
+ Directory artifacts = tools.getEngineArtifactsDirectory(platform, buildMode);
components.icuData = new File(path.join(artifacts.path, 'icudtl.dat'));
components.jars = <File>[
@@ -272,18 +263,18 @@
int _buildApk(
TargetPlatform platform,
- BuildVariant buildVariant,
+ BuildMode buildMode,
_ApkComponents components,
String flxPath,
ApkKeystoreInfo keystore,
String outputFile
) {
assert(platform != null);
- assert(buildVariant != null);
+ assert(buildMode != null);
Directory tempDir = Directory.systemTemp.createTempSync('flutter_tools');
- printTrace('Building APK; buildVariant: ${getVariantName(buildVariant)}.');
+ printTrace('Building APK; buildMode: ${getModeName(buildMode)}.');
try {
_ApkBuilder builder = new _ApkBuilder(androidSdk.latestVersion);
@@ -391,7 +382,7 @@
Future<int> buildAndroid(
TargetPlatform platform,
- BuildVariant buildVariant, {
+ BuildMode buildMode, {
Toolchain toolchain,
bool force: false,
String manifest: _kDefaultAndroidManifestPath,
@@ -429,17 +420,15 @@
resources = _kDefaultResourcesPath;
}
- _ApkComponents components = await _findApkComponents(
- platform, buildVariant, manifest, resources
- );
+ _ApkComponents components = await _findApkComponents(platform, buildMode, manifest, resources);
if (components == null) {
printError('Failure building APK: unable to find components.');
return 1;
}
- String typeName = path.basename(tools.getEngineArtifactsDirectory(platform, buildVariant).path);
- printStatus('Building APK in ${getVariantName(buildVariant)} mode ($typeName)...');
+ String typeName = path.basename(tools.getEngineArtifactsDirectory(platform, buildMode).path);
+ printStatus('Building APK in ${getModeName(buildMode)} mode ($typeName)...');
if (flxPath != null && flxPath.isNotEmpty) {
if (!FileSystemEntity.isFileSync(flxPath)) {
@@ -448,16 +437,16 @@
return 1;
}
- return _buildApk(platform, buildVariant, components, flxPath, keystore, outputFile);
+ return _buildApk(platform, buildMode, components, flxPath, keystore, outputFile);
} else {
// Find the path to the main Dart file; build the FLX.
String mainPath = findMainDartFile(target);
String localBundlePath = await flx.buildFlx(
- toolchain,
- mainPath: mainPath,
- includeRobotoFonts: false);
+ toolchain,
+ mainPath: mainPath,
+ includeRobotoFonts: false);
- return _buildApk(platform, buildVariant, components, localBundlePath, keystore, outputFile);
+ return _buildApk(platform, buildMode, components, localBundlePath, keystore, outputFile);
}
}
@@ -465,7 +454,7 @@
TargetPlatform platform,
Toolchain toolchain, {
String target,
- BuildVariant buildVariant: BuildVariant.develop
+ BuildMode buildMode: BuildMode.debug
}) async {
if (!FileSystemEntity.isFileSync(_kDefaultAndroidManifestPath)) {
printError('Cannot build APK: missing $_kDefaultAndroidManifestPath.');
@@ -474,7 +463,7 @@
int result = await buildAndroid(
platform,
- buildVariant,
+ buildMode,
toolchain: toolchain,
force: false,
target: target
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart
index e7633cf..dac24a5 100644
--- a/packages/flutter_tools/lib/src/commands/run.dart
+++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -62,6 +62,7 @@
final List<String> aliases = <String>['start'];
RunCommand() {
+ addBuildModeFlags();
argParser.addFlag('full-restart',
defaultsTo: true,
help: 'Stop any currently running application process before running the app.');
@@ -106,7 +107,8 @@
route: route,
clearLogs: clearLogs,
startPaused: argResults['start-paused'],
- debugPort: debugPort
+ debugPort: debugPort,
+ buildMode: getBuildMode()
);
return result;
@@ -136,7 +138,8 @@
String route,
bool clearLogs: false,
bool startPaused: false,
- int debugPort: observatoryDefaultPort
+ int debugPort: observatoryDefaultPort,
+ BuildMode buildMode: BuildMode.debug
}) async {
String mainPath = findMainDartFile(target);
if (!FileSystemEntity.isFileSync(mainPath)) {
@@ -166,7 +169,7 @@
device.platform,
toolchain,
target: target,
- buildVariant: BuildVariant.develop
+ buildMode: buildMode
);
if (result != 0)
diff --git a/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart b/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
index 46dc356..67e82dd 100644
--- a/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
+++ b/packages/flutter_tools/lib/src/ios/setup_xcodeproj.dart
@@ -99,7 +99,7 @@
String iosFilesPath = path.join(flutterProjectPath, 'ios');
String xcodeprojPath = path.join(iosFilesPath, '.generated');
- Directory toolDir = tools.getEngineArtifactsDirectory(TargetPlatform.ios, BuildVariant.develop);
+ Directory toolDir = tools.getEngineArtifactsDirectory(TargetPlatform.ios, BuildMode.debug);
File archiveFile = new File(path.join(toolDir.path, 'FlutterXcode.zip'));
List<int> archiveBytes = archiveFile.readAsBytesSync();
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart
index 6c64be0..6c56269 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -60,6 +60,25 @@
_usesPubOption = true;
}
+ void addBuildModeFlags() {
+ argParser.addFlag('debug',
+ negatable: false,
+ help: 'Build a debug version of your app (the default).');
+ argParser.addFlag('deploy',
+ negatable: false,
+ help: 'Build a deployable version of your app.');
+ }
+
+ BuildMode getBuildMode() {
+ if (argResults['debug'] && argResults['deploy'])
+ throw new UsageException('Only one of --debug or --deploy should be specified.', null);
+
+ BuildMode mode = BuildMode.debug;
+ if (argResults['deploy'])
+ mode = BuildMode.deploy;
+ return mode;
+ }
+
void _setupToolchain() {
toolchain ??= Toolchain.forConfigs(buildConfigurations);
}
diff --git a/packages/flutter_tools/lib/src/toolchain.dart b/packages/flutter_tools/lib/src/toolchain.dart
index 1db907c..d74b26e 100644
--- a/packages/flutter_tools/lib/src/toolchain.dart
+++ b/packages/flutter_tools/lib/src/toolchain.dart
@@ -126,14 +126,14 @@
/// Return the directory that contains engine artifacts for the given targets.
/// This directory might contain artifacts like `libsky_shell.so`.
- Directory getEngineArtifactsDirectory(TargetPlatform platform, BuildVariant variant) {
- Directory dir = _getEngineArtifactsDirectory(platform, variant);
+ Directory getEngineArtifactsDirectory(TargetPlatform platform, BuildMode mode) {
+ Directory dir = _getEngineArtifactsDirectory(platform, mode);
if (dir != null)
printTrace('Using engine artifacts dir: ${dir.path}');
return dir;
}
- Directory _getEngineArtifactsDirectory(TargetPlatform platform, BuildVariant variant) {
+ Directory _getEngineArtifactsDirectory(TargetPlatform platform, BuildMode mode) {
if (engineOutDir != null) {
return new Directory(engineOutDir);
} else if (engineSrcPath != null) {
@@ -162,7 +162,7 @@
return new Directory(path.join(engineSrcPath, 'out/${type}_$_modeStr'));
} else {
// For now, only suffix for deploy variants.
- String suffix = variant == BuildVariant.deploy ? '-${getVariantName(variant)}' : '';
+ String suffix = mode == BuildMode.deploy ? '-${getModeName(mode)}' : '';
// Create something like `android-arm` or `android-arm-deploy`.
String dirName = getNameForTargetPlatform(platform) + suffix;
diff --git a/packages/flutter_tools/test/toolchain_test.dart b/packages/flutter_tools/test/toolchain_test.dart
index f30b347..159e839 100644
--- a/packages/flutter_tools/test/toolchain_test.dart
+++ b/packages/flutter_tools/test/toolchain_test.dart
@@ -33,11 +33,11 @@
endsWith('cache/artifacts/engine/linux-x64')
);
expect(
- toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildVariant.develop).path,
+ toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildMode.debug).path,
endsWith('cache/artifacts/engine/android-arm')
);
expect(
- toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildVariant.deploy).path,
+ toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildMode.deploy).path,
endsWith('cache/artifacts/engine/android-arm-deploy')
);
});
@@ -52,7 +52,7 @@
'engine/out/Release'
);
expect(
- toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildVariant.develop).path,
+ toolConfig.getEngineArtifactsDirectory(TargetPlatform.android_arm, BuildMode.debug).path,
'engine/out/android_Release'
);