diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java index f66ac9e057aa..6f784713b4d5 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidPrecompileTask.java @@ -42,6 +42,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; +import java.util.Arrays; import java.util.Collection; import java.util.Set; @@ -92,11 +93,14 @@ public class AndroidPrecompileTask implements CompileTask { LOG.debug("Platform-tools revision for module " + module.getName() + " is " + platformToolsRevision); - if (platformToolsRevision >= 0 && platformToolsRevision <= 7) { - if (facet.getConfiguration().LIBRARY_PROJECT) { + if (facet.getConfiguration().LIBRARY_PROJECT) { + if (platformToolsRevision >= 0 && platformToolsRevision <= 7) { LOG.debug("Excluded sources of module " + module.getName()); excludeAllSourceRoots(module, configuration, addedEntries); } + else { + unexcludeAllSourceRoots(module, configuration); + } } } @@ -160,6 +164,24 @@ public class AndroidPrecompileTask implements CompileTask { vFile.refresh(false, true); } } + + private static void unexcludeAllSourceRoots(Module module, + ExcludedEntriesConfiguration configuration) { + final VirtualFile[] sourceRoots = ModuleRootManager.getInstance(module).getSourceRoots(); + final Set sourceRootSet = new HashSet(); + sourceRootSet.addAll(Arrays.asList(sourceRoots)); + + final ExcludeEntryDescription[] descriptions = configuration.getExcludeEntryDescriptions(); + configuration.removeAllExcludeEntryDescriptions(); + + for (ExcludeEntryDescription description : descriptions) { + final VirtualFile file = description.getVirtualFile(); + + if (file == null || !sourceRootSet.contains(file)) { + configuration.addExcludeEntryDescription(description); + } + } + } private static void excludeAllSourceRoots(Module module, ExcludedEntriesConfiguration configuration,