Ant: Add support for fork-mode
#KT-44293
This commit is contained in:
committed by
Alexander Udalov
parent
ee952db1a2
commit
0110b4e4b4
@@ -0,0 +1,16 @@
|
||||
OUT:
|
||||
Buildfile: [TestData]/build.xml
|
||||
|
||||
premain:
|
||||
[javac] Compiling 1 source file to [Temp]
|
||||
[jar] Building jar: [Temp]/premain.jar
|
||||
|
||||
build:
|
||||
[kotlinc] Compiling [[TestData]] => [[Temp]/fork.jar]
|
||||
[kotlinc] -Xms64m
|
||||
[kotlinc] -Xmx128m
|
||||
|
||||
BUILD SUCCESSFUL
|
||||
Total time: [time]
|
||||
|
||||
Return code: 0
|
||||
@@ -0,0 +1,25 @@
|
||||
<project name="Ant Task Test" default="build">
|
||||
<taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
|
||||
|
||||
<target name="premain">
|
||||
<sequential>
|
||||
<javac srcdir="${test.data}/premain" destdir="${temp}" includeAntRuntime="false"/>
|
||||
<jar destfile="${temp}/premain.jar"
|
||||
basedir="${temp}"
|
||||
excludes="*.java *.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="Premain"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</sequential>
|
||||
</target>
|
||||
|
||||
<target name="build" depends="premain">
|
||||
<kotlinc src="${test.data}" output="${temp}/fork.jar" fork="true">
|
||||
<jvmarg value="-Xms64m"/>
|
||||
<jvmarg value="-Xmx128m"/>
|
||||
<jvmarg value="-javaagent:${temp}/premain.jar"/>
|
||||
<compilerarg value="-nowarn"/>
|
||||
</kotlinc>
|
||||
</target>
|
||||
</project>
|
||||
@@ -0,0 +1,5 @@
|
||||
package hello
|
||||
|
||||
fun main() {
|
||||
println(0 as String)
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import java.lang.instrument.Instrumentation;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.RuntimeMXBean;
|
||||
import java.util.List;
|
||||
|
||||
public class Premain {
|
||||
public static void premain(String agentArgs, Instrumentation inst) {
|
||||
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
|
||||
List<String> arguments = bean.getInputArguments();
|
||||
arguments.stream().filter(param ->
|
||||
param.startsWith("-Xmx") || param.startsWith("-Xms")
|
||||
).sorted().forEach(System.out::println);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
OUT:
|
||||
Buildfile: [TestData]/build.xml
|
||||
|
||||
premain:
|
||||
[javac] Compiling 1 source file to [Temp]
|
||||
[jar] Building jar: [Temp]/premain.jar
|
||||
|
||||
build:
|
||||
[kotlinc] Compiling [[TestData]] => [[Temp]/fork.jar]
|
||||
[kotlinc] -Xms64m
|
||||
[kotlinc] -Xmx128m
|
||||
[kotlinc] error: warnings found and -Werror specified
|
||||
[kotlinc] [TestData]/test.kt:4:15: warning: this cast can never succeed
|
||||
[kotlinc] println(0 as String)
|
||||
[kotlinc] ^
|
||||
|
||||
ERR:
|
||||
|
||||
BUILD FAILED
|
||||
[TestData]/build.xml:18: Compile failed; see the compiler error output for details.
|
||||
|
||||
Total time: [time]
|
||||
|
||||
Return code: 1
|
||||
@@ -0,0 +1,25 @@
|
||||
<project name="Ant Task Test" default="build">
|
||||
<taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
|
||||
|
||||
<target name="premain">
|
||||
<sequential>
|
||||
<javac srcdir="${test.data}/premain" destdir="${temp}" includeAntRuntime="false"/>
|
||||
<jar destfile="${temp}/premain.jar"
|
||||
basedir="${temp}"
|
||||
excludes="*.java *.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="Premain"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</sequential>
|
||||
</target>
|
||||
|
||||
<target name="build" depends="premain">
|
||||
<kotlinc src="${test.data}" output="${temp}/fork.jar" fork="true">
|
||||
<jvmarg value="-Xms64m"/>
|
||||
<jvmarg value="-Xmx128m"/>
|
||||
<jvmarg value="-javaagent:${temp}/premain.jar"/>
|
||||
<compilerarg value="-Werror"/>
|
||||
</kotlinc>
|
||||
</target>
|
||||
</project>
|
||||
@@ -0,0 +1,14 @@
|
||||
import java.lang.instrument.Instrumentation;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.RuntimeMXBean;
|
||||
import java.util.List;
|
||||
|
||||
public class Premain {
|
||||
public static void premain(String agentArgs, Instrumentation inst) {
|
||||
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
|
||||
List<String> arguments = bean.getInputArguments();
|
||||
arguments.stream().filter(param ->
|
||||
param.startsWith("-Xmx") || param.startsWith("-Xms")
|
||||
).sorted().forEach(System.out::println);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package hello
|
||||
|
||||
fun main() {
|
||||
println(0 as String)
|
||||
}
|
||||
Reference in New Issue
Block a user