diff options
author | Alex Ruiz <alruiz@google.com> | 2013-12-05 15:03:41 -0800 |
---|---|---|
committer | Alex Ruiz <alruiz@google.com> | 2013-12-05 15:17:13 -0800 |
commit | fab300dc971977327c87eec06b03c7f8a8eb57cd (patch) | |
tree | fdb11cd02d4dbdf10d6d431ef1837f44882266ad /android-gradle-jps | |
parent | 9458b8a2a0c35acfef2c85a69cd161edfb0b800d (diff) | |
download | idea-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')
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 + |