summaryrefslogtreecommitdiff
path: root/android-gradle-jps
diff options
context:
space:
mode:
authorAlex Ruiz <alruiz@google.com>2013-12-05 15:03:41 -0800
committerAlex Ruiz <alruiz@google.com>2013-12-05 15:17:13 -0800
commitfab300dc971977327c87eec06b03c7f8a8eb57cd (patch)
treefdb11cd02d4dbdf10d6d431ef1837f44882266ad /android-gradle-jps
parent9458b8a2a0c35acfef2c85a69cd161edfb0b800d (diff)
downloadidea-fab300dc971977327c87eec06b03c7f8a8eb57cd.tar.gz
Adding 'offline' mode to builds.
This CL adds 'offline' build mode to both 'direct Gradle invocation' and JPS builders. Partial fix for https://code.google.com/p/android/issues/detail?id=58151 We still need to add support for 'offline' project sync (affects 'New Project', 'Import Project' and 'Sync with Gradle files' actions.) This change needs to happen in the IDEA's 'External System Import' framework. I'll work on that part shortly. Change-Id: I7b1e77ddcdf2ef362add502bb40d7ed8359dca8d
Diffstat (limited to 'android-gradle-jps')
-rw-r--r--android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java16
-rw-r--r--android-gradle-jps/src/com/android/tools/idea/jps/builder/BuilderExecutionSettings.java7
2 files changed, 21 insertions, 2 deletions
diff --git a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
index 969076275a8..a2affd61a04 100644
--- a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
+++ b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
@@ -275,12 +275,24 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
if (!jvmArgs.isEmpty()) {
LOG.info("Passing JVM args to Gradle Tooling API: " + jvmArgs);
- launcher.setJvmArguments(jvmArgs.toArray(new String[jvmArgs.size()]));
+ launcher.setJvmArguments(ArrayUtil.toStringArray(jvmArgs));
}
+ List<String> args = Lists.newArrayList();
+
if (executionSettings.isParallelBuild()) {
LOG.info("Using 'parallel' build option");
- launcher.withArguments("--parallel");
+ args.add(GradleBuilds.PARALLEL_BUILD_OPTION);
+ }
+
+ if (executionSettings.isOfflineBuild()) {
+ LOG.info("Using 'offline' mode option");
+ args.add(GradleBuilds.OFFLINE_MODE_OPTION);
+ }
+
+ if (!args.isEmpty()) {
+ LOG.info("Passing command-line args to Gradle Tooling API: " + args);
+ launcher.withArguments(ArrayUtil.toStringArray(args));
}
File javaHomeDir = executionSettings.getJavaHomeDir();
diff --git a/android-gradle-jps/src/com/android/tools/idea/jps/builder/BuilderExecutionSettings.java b/android-gradle-jps/src/com/android/tools/idea/jps/builder/BuilderExecutionSettings.java
index db6cb6e5787..de29ea638a9 100644
--- a/android-gradle-jps/src/com/android/tools/idea/jps/builder/BuilderExecutionSettings.java
+++ b/android-gradle-jps/src/com/android/tools/idea/jps/builder/BuilderExecutionSettings.java
@@ -47,6 +47,7 @@ class BuilderExecutionSettings {
@NotNull private final BuildMode myBuildMode;
private final boolean myVerboseLoggingEnabled;
private final boolean myParallelBuild;
+ private final boolean myOfflineBuildMode;
BuilderExecutionSettings() {
myEmbeddedGradleDaemonEnabled = SystemProperties.getBooleanProperty(BuildProcessJvmArgs.USE_EMBEDDED_GRADLE_DAEMON, false);
@@ -59,6 +60,7 @@ class BuilderExecutionSettings {
myBuildMode = Strings.isNullOrEmpty(buildActionName) ? BuildMode.DEFAULT_BUILD_MODE : BuildMode.valueOf(buildActionName);
myVerboseLoggingEnabled = SystemProperties.getBooleanProperty(BuildProcessJvmArgs.USE_GRADLE_VERBOSE_LOGGING, false);
myParallelBuild = SystemProperties.getBooleanProperty(GlobalOptions.COMPILE_PARALLEL_OPTION, false);
+ myOfflineBuildMode = SystemProperties.getBooleanProperty(BuildProcessJvmArgs.GRADLE_OFFLINE_BUILD_MODE, false);
populateModulesToBuild();
populateGradleDaemonJvmOptions();
populateHttpProxyJvmOptions();
@@ -180,6 +182,10 @@ class BuilderExecutionSettings {
return myParallelBuild;
}
+ boolean isOfflineBuild() {
+ return myOfflineBuildMode;
+ }
+
@NotNull
Set<String> getModulesToBuildNames() {
return myModulesToBuildNames;
@@ -195,6 +201,7 @@ class BuilderExecutionSettings {
", gradleHomeDir=" + myGradleHomeDir +
", gradleServiceDir=" + myGradleServiceDir +
", javaHomeDir=" + myJavaHomeDir +
+ ", offlineBuild=" + myOfflineBuildMode +
", parallelBuild=" + myParallelBuild +
", projectDir=" + myProjectDir +
", verboseLoggingEnabled=" + myVerboseLoggingEnabled +