Ant task: support "compilerarg" element in withKotlin as in kotlinc

This commit is contained in:
Alexander Udalov
2015-06-04 23:06:10 +03:00
parent dda44a61a1
commit e224337ff3
3 changed files with 21 additions and 0 deletions
@@ -23,10 +23,12 @@ import org.apache.tools.ant.MagicNames;
import org.apache.tools.ant.taskdefs.Javac; import org.apache.tools.ant.taskdefs.Javac;
import org.apache.tools.ant.taskdefs.compilers.Javac13; import org.apache.tools.ant.taskdefs.compilers.Javac13;
import org.apache.tools.ant.taskdefs.condition.AntVersion; import org.apache.tools.ant.taskdefs.condition.AntVersion;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Path;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@@ -36,6 +38,7 @@ public class KotlinCompilerAdapter extends Javac13 {
private static final List<String> KOTLIN_EXTENSIONS = Arrays.asList("kt", "kts"); private static final List<String> KOTLIN_EXTENSIONS = Arrays.asList("kt", "kts");
private Path externalAnnotations; private Path externalAnnotations;
public List<Commandline.Argument> additionalArguments = new ArrayList<Commandline.Argument>(0);
public void setExternalAnnotations(Path externalAnnotations) { public void setExternalAnnotations(Path externalAnnotations) {
this.externalAnnotations = externalAnnotations; this.externalAnnotations = externalAnnotations;
@@ -48,6 +51,12 @@ public class KotlinCompilerAdapter extends Javac13 {
return externalAnnotations.createPath(); return externalAnnotations.createPath();
} }
public Commandline.Argument createCompilerArg() {
Commandline.Argument argument = new Commandline.Argument();
additionalArguments.add(argument);
return argument;
}
@Override @Override
public String[] getSupportedFileExtensions() { public String[] getSupportedFileExtensions() {
List<String> result = KotlinPackage.plus(Arrays.asList(super.getSupportedFileExtensions()), KOTLIN_EXTENSIONS); List<String> result = KotlinPackage.plus(Arrays.asList(super.getSupportedFileExtensions()), KOTLIN_EXTENSIONS);
@@ -76,6 +85,8 @@ public class KotlinCompilerAdapter extends Javac13 {
kotlinc.setExternalAnnotations(externalAnnotations); kotlinc.setExternalAnnotations(externalAnnotations);
kotlinc.getAdditionalArguments().addAll(additionalArguments);
kotlinc.execute(); kotlinc.execute();
if (!Integer.valueOf(0).equals(kotlinc.getExitCode())) { if (!Integer.valueOf(0).equals(kotlinc.getExitCode())) {
// Don't run javac if failOnError = false and there were errors on Kotlin sources // Don't run javac if failOnError = false and there were errors on Kotlin sources
@@ -3,6 +3,10 @@ Buildfile: [TestData]/build.xml
build: build:
[kotlinc] Compiling [[TestData]/hello.kt] => [[Temp]/hello.jar] [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 BUILD SUCCESSFUL
Total time: [time] Total time: [time]
@@ -7,5 +7,11 @@
<compilerarg line="-Xno-call-assertions -Xno-param-assertions"/> <compilerarg line="-Xno-call-assertions -Xno-param-assertions"/>
<compilerarg value="-Xno-optimize"/> <compilerarg value="-Xno-optimize"/>
</kotlinc> </kotlinc>
<javac srcdir="${test.data}" destdir="${temp}" includeantruntime="false">
<withKotlin>
<compilerarg value="-version"/>
</withKotlin>
</javac>
</target> </target>
</project> </project>