summaryrefslogtreecommitdiff
path: root/android-gradle-jps
diff options
context:
space:
mode:
authorAlex Ruiz <alruiz@google.com>2014-01-06 22:17:38 -0800
committerAlex Ruiz <alruiz@google.com>2014-01-06 22:21:17 -0800
commit29f4913f4c439f06c27c591e5cc3f6e3905de912 (patch)
treeb96b6693260e1b9f6727617e5c69476afdce4071 /android-gradle-jps
parentef2d2cc8339ab953efb274f5124a2d422e077323 (diff)
downloadidea-29f4913f4c439f06c27c591e5cc3f6e3905de912.tar.gz
Fixed builds for project with failed Gradle sync.
This CL does the following, when building (make) a project with failed Gradle sync: - Call "assemble" since there is no model, we don't have any information about available tasks - If the build had 0 errors, we automatically trigger an import (hoping that since there were no errors, sync will be successful) Change-Id: I1fd6c91e0895c25804e224a8beea36f52165d1ba
Diffstat (limited to 'android-gradle-jps')
-rw-r--r--android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java32
1 files changed, 28 insertions, 4 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 0358fa47d8a..f6c7896a5f8 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
@@ -152,8 +152,14 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
List<String> tasks = Lists.newArrayList();
- for (JpsModule module : getModulesToBuild(project, executionSettings)) {
- populateBuildTasks(module, executionSettings, tasks, context);
+ List<JpsModule> modulesToBuild = getModulesToBuild(project, executionSettings);
+ if (modulesToBuild.isEmpty()) {
+ tasks.add(GradleBuilds.DEFAULT_ASSEMBLE_TASK_NAME);
+ }
+ else {
+ for (JpsModule module : modulesToBuild) {
+ populateBuildTasks(module, executionSettings, tasks, context);
+ }
}
if (!tasks.isEmpty()) {
@@ -171,6 +177,9 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
List<JpsModule> modules = project.getModules();
List<String> moduleNames = executionSettings.getModulesToBuildNames();
if (moduleNames.isEmpty()) {
+ if (isGradleProject(modules)) {
+ return Collections.emptyList();
+ }
return modules;
}
List<JpsModule> modulesToBuild = Lists.newArrayList();
@@ -182,6 +191,22 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
return modulesToBuild;
}
+ private static boolean isGradleProject(@NotNull List<JpsModule> modules) {
+ for (JpsModule module : modules) {
+ JpsAndroidModuleProperties properties = getAndroidModuleProperties(module);
+ if (properties != null && !properties.ALLOW_USER_CONFIGURATION) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Nullable
+ private static JpsAndroidModuleProperties getAndroidModuleProperties(@NotNull JpsModule module) {
+ JpsAndroidModuleExtensionImpl androidFacet = (JpsAndroidModuleExtensionImpl)AndroidJpsUtil.getExtension(module);
+ return androidFacet != null ? androidFacet.getProperties() : null;
+ }
+
private static void populateBuildTasks(@NotNull JpsModule module,
@NotNull BuilderExecutionSettings executionSettings,
@NotNull List<String> tasks,
@@ -191,8 +216,7 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
return;
}
String gradleProjectPath = androidGradleFacet.getProperties().GRADLE_PROJECT_PATH;
- JpsAndroidModuleExtensionImpl androidFacet = (JpsAndroidModuleExtensionImpl)AndroidJpsUtil.getExtension(module);
- JpsAndroidModuleProperties properties = androidFacet != null ? androidFacet.getProperties() : null;
+ JpsAndroidModuleProperties properties = getAndroidModuleProperties(module);
GradleBuilds.findAndAddBuildTask(module.getName(), executionSettings.getBuildMode(), gradleProjectPath, properties, tasks,
getTestCompileType(context));