diff --git a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleDescriptionBuilder.java b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleDescriptionBuilder.java index 29ee2814c88..f203d81809d 100644 --- a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleDescriptionBuilder.java +++ b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleDescriptionBuilder.java @@ -27,6 +27,7 @@ public interface KotlinModuleDescriptionBuilder { String outputDir, DependencyProvider dependencyProvider, List sourceFiles, + List javaSourceRoots, boolean tests, Set directoriesToFilterOut ); diff --git a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleScriptBuilderFactory.java b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleScriptBuilderFactory.java index 71e229a8a8b..d7d48e07964 100644 --- a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleScriptBuilderFactory.java +++ b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleScriptBuilderFactory.java @@ -56,6 +56,7 @@ public class KotlinModuleScriptBuilderFactory implements KotlinModuleDescription String outputDir, DependencyProvider dependencyProvider, List sourceFiles, + List javaSourceRoots, boolean tests, final Set directoriesToFilterOut ) { @@ -74,7 +75,7 @@ public class KotlinModuleScriptBuilderFactory implements KotlinModuleDescription script.append(" sources += \"" + toSystemIndependentName(sourceFile.getPath()) + "\"\n"); } - dependencyProvider.processClassPath(new DependencyProcessor() { + DependencyProcessor processor = new DependencyProcessor() { @Override public void processClassPathSection(@NotNull String sectionDescription, @NotNull Collection files) { script.append(" // " + sectionDescription + "\n"); @@ -97,7 +98,13 @@ public class KotlinModuleScriptBuilderFactory implements KotlinModuleDescription script.append(" annotationsPath += \"").append(toSystemIndependentName(file.getPath())).append("\"\n"); } } - }); + }; + + if (!javaSourceRoots.isEmpty()) { + processor.processClassPathSection("Java source roots", javaSourceRoots); + } + + dependencyProvider.processClassPath(processor); script.append(" }\n"); return this; diff --git a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleXmlBuilderFactory.java b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleXmlBuilderFactory.java index 11dd346897d..d11932c85a4 100644 --- a/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleXmlBuilderFactory.java +++ b/ide-compiler-runner/src/org/jetbrains/kotlin/modules/KotlinModuleXmlBuilderFactory.java @@ -60,6 +60,7 @@ public class KotlinModuleXmlBuilderFactory implements KotlinModuleDescriptionBui String outputDir, DependencyProvider dependencyProvider, List sourceFiles, + List javaSourceRoots, boolean tests, final Set directoriesToFilterOut ) { @@ -82,7 +83,7 @@ public class KotlinModuleXmlBuilderFactory implements KotlinModuleDescriptionBui p.println("<", SOURCES, " ", PATH, "=\"", getEscapedPath(sourceFile), "\"/>"); } - dependencyProvider.processClassPath(new DependencyProcessor() { + DependencyProcessor processor = new DependencyProcessor() { @Override public void processClassPathSection(@NotNull String sectionDescription, @NotNull Collection files) { p.println(""); @@ -110,10 +111,16 @@ public class KotlinModuleXmlBuilderFactory implements KotlinModuleDescriptionBui public void processAnnotationRoots(@NotNull List files) { p.println(""); for (File file : files) { - p.println("<", EXTERNAL_ANNOTATIONS, " ", PATH, "= \"", getEscapedPath(file), "\"/>"); + p.println("<", EXTERNAL_ANNOTATIONS, " ", PATH, "=\"", getEscapedPath(file), "\"/>"); } } - }); + }; + + if (!javaSourceRoots.isEmpty()) { + processor.processClassPathSection("Java source roots", javaSourceRoots); + } + + dependencyProvider.processClassPath(processor); closeTag(p, MODULE); return this; diff --git a/idea/testData/modules.xml/basic.xml b/idea/testData/modules.xml/basic.xml index 340cb84d589..fff49604ea7 100644 --- a/idea/testData/modules.xml/basic.xml +++ b/idea/testData/modules.xml/basic.xml @@ -3,9 +3,11 @@ + + - - + + diff --git a/idea/testData/modules.xml/filtered.xml b/idea/testData/modules.xml/filtered.xml index e7ed7eb1982..945d7da1c80 100644 --- a/idea/testData/modules.xml/filtered.xml +++ b/idea/testData/modules.xml/filtered.xml @@ -4,8 +4,8 @@ - - + + - - + + - - + +