Don't run the builder if there's no dirty files
This commit is contained in:
@@ -72,8 +72,11 @@ public class KotlinBuilder extends ModuleLevelBuilder {
|
||||
ModuleBuildTarget representativeTarget = chunk.representativeTarget();
|
||||
|
||||
// For non-incremental build: take all sources
|
||||
if (!KotlinSourceFileCollector.hasDirtyFiles(dirtyFilesHolder)) {
|
||||
return ExitCode.NOTHING_DONE;
|
||||
}
|
||||
List<File> sourceFiles = KotlinSourceFileCollector.getAllKotlinSourceFiles(representativeTarget);
|
||||
//List<File> sourceFiles = getDirtySourceFiles(dirtyFilesHolder);
|
||||
//List<File> sourceFiles = KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder);
|
||||
|
||||
if (sourceFiles.isEmpty()) {
|
||||
return ExitCode.NOTHING_DONE;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.jet.jps.build;
|
||||
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.util.Processor;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -50,6 +51,21 @@ public class KotlinSourceFileCollector {
|
||||
return sourceFiles;
|
||||
}
|
||||
|
||||
// For incremental compilation
|
||||
public static boolean hasDirtyFiles(DirtyFilesHolder<JavaSourceRootDescriptor, ModuleBuildTarget> dirtyFilesHolder)
|
||||
throws IOException {
|
||||
final Ref<Boolean> result = Ref.create(false);
|
||||
|
||||
dirtyFilesHolder.processDirtyFiles(new FileProcessor<JavaSourceRootDescriptor, ModuleBuildTarget>() {
|
||||
@Override
|
||||
public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor root) throws IOException {
|
||||
result.set(true);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return result.get();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<File> getAllKotlinSourceFiles(@NotNull ModuleBuildTarget target) {
|
||||
final List<File> result = ContainerUtil.newArrayList();
|
||||
|
||||
Reference in New Issue
Block a user