From e224337ff3b7b497697c8e00a9cd9f580e33eb9d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 4 Jun 2015 23:06:10 +0300 Subject: [PATCH] Ant task: support "compilerarg" element in withKotlin as in kotlinc --- .../jetbrains/kotlin/ant/KotlinCompilerAdapter.java | 11 +++++++++++ .../ant/jvm/additionalArguments/build.log.expected | 4 ++++ .../integration/ant/jvm/additionalArguments/build.xml | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java b/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java index cf98304708b..b07931fa5cc 100644 --- a/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java +++ b/ant/src/org/jetbrains/kotlin/ant/KotlinCompilerAdapter.java @@ -23,10 +23,12 @@ import org.apache.tools.ant.MagicNames; import org.apache.tools.ant.taskdefs.Javac; import org.apache.tools.ant.taskdefs.compilers.Javac13; import org.apache.tools.ant.taskdefs.condition.AntVersion; +import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; import org.jetbrains.annotations.NotNull; import java.io.File; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -36,6 +38,7 @@ public class KotlinCompilerAdapter extends Javac13 { private static final List KOTLIN_EXTENSIONS = Arrays.asList("kt", "kts"); private Path externalAnnotations; + public List additionalArguments = new ArrayList(0); public void setExternalAnnotations(Path externalAnnotations) { this.externalAnnotations = externalAnnotations; @@ -48,6 +51,12 @@ public class KotlinCompilerAdapter extends Javac13 { return externalAnnotations.createPath(); } + public Commandline.Argument createCompilerArg() { + Commandline.Argument argument = new Commandline.Argument(); + additionalArguments.add(argument); + return argument; + } + @Override public String[] getSupportedFileExtensions() { List result = KotlinPackage.plus(Arrays.asList(super.getSupportedFileExtensions()), KOTLIN_EXTENSIONS); @@ -76,6 +85,8 @@ public class KotlinCompilerAdapter extends Javac13 { kotlinc.setExternalAnnotations(externalAnnotations); + kotlinc.getAdditionalArguments().addAll(additionalArguments); + kotlinc.execute(); if (!Integer.valueOf(0).equals(kotlinc.getExitCode())) { // Don't run javac if failOnError = false and there were errors on Kotlin sources diff --git a/compiler/testData/integration/ant/jvm/additionalArguments/build.log.expected b/compiler/testData/integration/ant/jvm/additionalArguments/build.log.expected index bdd3291fcb4..ba7bf123425 100644 --- a/compiler/testData/integration/ant/jvm/additionalArguments/build.log.expected +++ b/compiler/testData/integration/ant/jvm/additionalArguments/build.log.expected @@ -3,6 +3,10 @@ Buildfile: [TestData]/build.xml build: [kotlinc] Compiling [[TestData]/hello.kt] => [[Temp]/hello.jar] + [javac] Compiling 1 source file to [Temp] + [javac] Compiling [[TestData]] => [[Temp]] + [javac] INFO: Kotlin Compiler version [KotlinVersion] + [javac] Running javac... BUILD SUCCESSFUL Total time: [time] diff --git a/compiler/testData/integration/ant/jvm/additionalArguments/build.xml b/compiler/testData/integration/ant/jvm/additionalArguments/build.xml index 4537ecc1a75..e751a767a76 100644 --- a/compiler/testData/integration/ant/jvm/additionalArguments/build.xml +++ b/compiler/testData/integration/ant/jvm/additionalArguments/build.xml @@ -7,5 +7,11 @@ + + + + + +