From 9008a8b161e4ec87afbbdce1e8346a296f2f6621 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 1 Jun 2015 18:43:07 +0300 Subject: [PATCH] Fix withKotlin Ant task when no classpath is given #KT-6492 Fixed --- .../kotlin/ant/KotlinCompilerAdapter.java | 7 ++++++- .../integration/ant/jvm/noClasspathGiven/J.java | 4 ++++ .../ant/jvm/noClasspathGiven/build.log.expected | 14 ++++++++++++++ .../integration/ant/jvm/noClasspathGiven/build.xml | 13 +++++++++++++ .../integration/ant/jvm/noClasspathGiven/hello.kt | 5 +++++ .../ant/jvm/noClasspathGiven/hello.run.expected | 4 ++++ .../kotlin/integration/AntTaskJvmTest.java | 5 +++++ 7 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/integration/ant/jvm/noClasspathGiven/J.java create mode 100644 compiler/testData/integration/ant/jvm/noClasspathGiven/build.log.expected create mode 100644 compiler/testData/integration/ant/jvm/noClasspathGiven/build.xml create mode 100644 compiler/testData/integration/ant/jvm/noClasspathGiven/hello.kt create mode 100644 compiler/testData/integration/ant/jvm/noClasspathGiven/hello.run.expected diff --git a/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java b/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java index 9216a2ad3d9..5017309c7b5 100644 --- a/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java +++ b/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java @@ -42,7 +42,12 @@ public class KotlinCompilerAdapter extends DefaultCompilerAdapter { Kotlin2JvmTask kotlinTask = new Kotlin2JvmTask(); kotlinTask.setOutput(javac.getDestdir()); - kotlinTask.setClasspath(javac.getClasspath()); + + Path classpath = javac.getClasspath(); + if (classpath != null) { + kotlinTask.setClasspath(classpath); + } + kotlinTask.setSrc(javac.getSrcdir()); kotlinTask.setExternalAnnotations(externalAnnotations); diff --git a/compiler/testData/integration/ant/jvm/noClasspathGiven/J.java b/compiler/testData/integration/ant/jvm/noClasspathGiven/J.java new file mode 100644 index 00000000000..6802ccd0451 --- /dev/null +++ b/compiler/testData/integration/ant/jvm/noClasspathGiven/J.java @@ -0,0 +1,4 @@ +package hello; + +public class J { +} diff --git a/compiler/testData/integration/ant/jvm/noClasspathGiven/build.log.expected b/compiler/testData/integration/ant/jvm/noClasspathGiven/build.log.expected new file mode 100644 index 00000000000..43571e1ce89 --- /dev/null +++ b/compiler/testData/integration/ant/jvm/noClasspathGiven/build.log.expected @@ -0,0 +1,14 @@ +OUT: +Buildfile: [TestData]/build.xml + +build: + [mkdir] Created dir: [Temp]/classes + [javac] Compiling 1 source file to [Temp]/classes + [javac] Compiling [[TestData]] => [[Temp]/classes] + [javac] Running javac... + [jar] Building jar: [Temp]/hello.jar + +BUILD SUCCESSFUL +Total time: [time] + +Return code: 0 diff --git a/compiler/testData/integration/ant/jvm/noClasspathGiven/build.xml b/compiler/testData/integration/ant/jvm/noClasspathGiven/build.xml new file mode 100644 index 00000000000..3b3c222aab9 --- /dev/null +++ b/compiler/testData/integration/ant/jvm/noClasspathGiven/build.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.kt b/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.kt new file mode 100644 index 00000000000..6c9ab7fe60a --- /dev/null +++ b/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.kt @@ -0,0 +1,5 @@ +package hello + +fun main(args: Array) { + println("Hello!") +} diff --git a/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.run.expected b/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.run.expected new file mode 100644 index 00000000000..fd58d467c30 --- /dev/null +++ b/compiler/testData/integration/ant/jvm/noClasspathGiven/hello.run.expected @@ -0,0 +1,4 @@ +OUT: +Hello! + +Return code: 0 diff --git a/compiler/tests/org/jetbrains/kotlin/integration/AntTaskJvmTest.java b/compiler/tests/org/jetbrains/kotlin/integration/AntTaskJvmTest.java index 535c227b034..bdbddd380c7 100644 --- a/compiler/tests/org/jetbrains/kotlin/integration/AntTaskJvmTest.java +++ b/compiler/tests/org/jetbrains/kotlin/integration/AntTaskJvmTest.java @@ -96,6 +96,11 @@ public class AntTaskJvmTest extends AntTaskBaseTest { doJvmAntTest(); } + @Test + public void noClasspathGiven() throws Exception { + doJvmAntTest(); + } + @Test public void javacCompiler() throws Exception { doJvmAntTest("-cp", getClassPathForAnt(),