diff options
author | Alex Ruiz <alruiz@google.com> | 2014-01-06 22:17:38 -0800 |
---|---|---|
committer | Alex Ruiz <alruiz@google.com> | 2014-01-06 22:21:17 -0800 |
commit | 29f4913f4c439f06c27c591e5cc3f6e3905de912 (patch) | |
tree | b96b6693260e1b9f6727617e5c69476afdce4071 /android-gradle-jps | |
parent | ef2d2cc8339ab953efb274f5124a2d422e077323 (diff) | |
download | idea-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.java | 32 |
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)); |