IDEA-79192 unexclude library source roots before compilation

This commit is contained in:
Eugene Kudelevsky
2011-12-21 19:28:07 +04:00
parent 5c00cf116f
commit e9c6c27f48
@@ -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<VirtualFile> sourceRootSet = new HashSet<VirtualFile>();
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,