diff --git a/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilderModuleScriptGenerator.java b/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilderModuleScriptGenerator.java index f2195085954..f105f36047c 100644 --- a/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilderModuleScriptGenerator.java +++ b/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilderModuleScriptGenerator.java @@ -41,9 +41,7 @@ import org.jetbrains.jps.model.module.JpsSdkDependency; import java.io.File; import java.io.IOException; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; import static org.jetbrains.jet.compiler.runner.KotlinModuleDescriptionBuilder.DependencyProcessor; import static org.jetbrains.jet.compiler.runner.KotlinModuleDescriptionBuilder.DependencyProvider; @@ -61,6 +59,10 @@ public class KotlinBuilderModuleScriptGenerator { boolean noSources = true; + Set outputDirs = new HashSet(); + for (ModuleBuildTarget target : chunk.getTargets()) { + outputDirs.add(getOutputDir(target)); + } for (ModuleBuildTarget target : chunk.getTargets()) { File outputDir = getOutputDir(target); @@ -73,8 +75,8 @@ public class KotlinBuilderModuleScriptGenerator { getKotlinModuleDependencies(context, target), sourceFiles, target.isTests(), - // this excludes the output directory from the class path, to be removed for true incremental compilation - Collections.singleton(outputDir) + // this excludes the output directories from the class path, to be removed for true incremental compilation + outputDirs ); } diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTestCase.java b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTestCase.java index ac6b16c4fde..1108dab9584 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTestCase.java +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTestCase.java @@ -169,7 +169,7 @@ public class KotlinJpsBuildTestCase extends AbstractKotlinJpsBuildTestCase { private void assertOutputDeleted(String sourceFileName, String packageClassFqName, String moduleName) { File file = new File(workDir, sourceFileName); change(file.getAbsolutePath()); - makeAll(); + makeAll().assertSuccessful(); String outputDirPrefix = "out/production/" + moduleName + "/"; assertDeleted(outputDirPrefix + packageClassFqName.replace('.', '/') + ".class",