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();
|
ModuleBuildTarget representativeTarget = chunk.representativeTarget();
|
||||||
|
|
||||||
// For non-incremental build: take all sources
|
// For non-incremental build: take all sources
|
||||||
|
if (!KotlinSourceFileCollector.hasDirtyFiles(dirtyFilesHolder)) {
|
||||||
|
return ExitCode.NOTHING_DONE;
|
||||||
|
}
|
||||||
List<File> sourceFiles = KotlinSourceFileCollector.getAllKotlinSourceFiles(representativeTarget);
|
List<File> sourceFiles = KotlinSourceFileCollector.getAllKotlinSourceFiles(representativeTarget);
|
||||||
//List<File> sourceFiles = getDirtySourceFiles(dirtyFilesHolder);
|
//List<File> sourceFiles = KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder);
|
||||||
|
|
||||||
if (sourceFiles.isEmpty()) {
|
if (sourceFiles.isEmpty()) {
|
||||||
return ExitCode.NOTHING_DONE;
|
return ExitCode.NOTHING_DONE;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.jps.build;
|
package org.jetbrains.jet.jps.build;
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.Ref;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.util.Processor;
|
import com.intellij.util.Processor;
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
@@ -50,6 +51,21 @@ public class KotlinSourceFileCollector {
|
|||||||
return sourceFiles;
|
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
|
@NotNull
|
||||||
public static List<File> getAllKotlinSourceFiles(@NotNull ModuleBuildTarget target) {
|
public static List<File> getAllKotlinSourceFiles(@NotNull ModuleBuildTarget target) {
|
||||||
final List<File> result = ContainerUtil.newArrayList();
|
final List<File> result = ContainerUtil.newArrayList();
|
||||||
|
|||||||
Reference in New Issue
Block a user