From b7971cf9ae6bc3c329cff301134ff01696c10c48 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Tue, 12 Jan 2016 23:32:46 +0300 Subject: [PATCH] Don't fail when output directory not specified for "friend" build target #KT-10505 Fixed Original commit: d9af9472f0284e3549e5877f125f30d3818c2132 --- .../build/KotlinBuilderModuleScriptGenerator.java | 4 ++-- .../kotlin/jps/build/KotlinJpsBuildTest.kt | 4 ++++ .../kotlinProject.iml | 14 ++++++++++++++ .../kotlinProject.ipr | 14 ++++++++++++++ .../test/test.kt | 3 +++ 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml create mode 100644 jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr create mode 100644 jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java index 13c4b4f7cfe..af6e1488181 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java @@ -115,12 +115,12 @@ public class KotlinBuilderModuleScriptGenerator { } @Nullable - public static File getFriendDirSafe(@NotNull ModuleBuildTarget target) throws ProjectBuildException { + private static File getFriendDirSafe(@NotNull ModuleBuildTarget target) throws ProjectBuildException { if (!target.isTests()) return null; File outputDirForProduction = JpsJavaExtensionService.getInstance().getOutputDirectory(target.getModule(), false); if (outputDirForProduction == null) { - throw new ProjectBuildException("No output production directory found for " + target); + return null; } return outputDirForProduction; } diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index 491b2ab40a6..545ab9e091c 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -728,6 +728,10 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { doTest() } + fun testKotlinProjectWithEmptyProductionOutputDirWithoutSrcDir() { + doTest() + } + private fun BuildResult.checkErrors() { val actualErrors = getMessages(BuildMessage.Kind.ERROR) .map { it as CompilerMessage } diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml new file mode 100644 index 00000000000..43ffa57d1e2 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr new file mode 100644 index 00000000000..90747786771 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt new file mode 100644 index 00000000000..839220d1002 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt @@ -0,0 +1,3 @@ +fun test() { + +}