git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276792 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -71,6 +71,7 @@ | |||||
| printsummary="false" | printsummary="false" | ||||
| haltonfailure="false" | haltonfailure="false" | ||||
| failureproperty="tests.failed" | failureproperty="tests.failed" | ||||
| filtertrace="false" | |||||
| > | > | ||||
| <classpath> | <classpath> | ||||
| <pathelement location="${jarname}"/> | <pathelement location="${jarname}"/> | ||||
| @@ -76,8 +76,9 @@ | |||||
| <target name="testCSC" depends="validate_csc"> | <target name="testCSC" depends="validate_csc"> | ||||
| <csc | <csc | ||||
| destFile="${testCSC.exe}" | destFile="${testCSC.exe}" | ||||
| targetType="exe" | |||||
| /> | |||||
| targetType="exe"> | |||||
| <src dir="${src.dir}" includes="ex*.cs"/> | |||||
| </csc> | |||||
| <available property="app.created" file="${testCSC.exe}"/> | <available property="app.created" file="${testCSC.exe}"/> | ||||
| <fail unless="app.created">No app ${testCSC.exe} created</fail> | <fail unless="app.created">No app ${testCSC.exe} created</fail> | ||||
| <dn:dotnetexec executable="${testCSC.exe}" failonerror="true" /> | <dn:dotnetexec executable="${testCSC.exe}" failonerror="true" /> | ||||
| @@ -202,13 +202,8 @@ public abstract class AbstractBuildTask extends Task { | |||||
| + " same time"); | + " same time"); | ||||
| } | } | ||||
| DotNetExecTask exec = new DotNetExecTask(); | |||||
| if (vm != null) { | |||||
| exec.setVm(vm); | |||||
| } | |||||
| exec.setProject(getProject()); | |||||
| exec.setExecutable(getExecutable()); | |||||
| exec.setTaskName(getTaskName()); | |||||
| DotNetExecTask exec = DotNetExecTask.getTask(this, vm, | |||||
| getExecutable(), null); | |||||
| String[] args = getPropertyArguments(properties); | String[] args = getPropertyArguments(properties); | ||||
| for (int i = 0; i < args.length; i++) { | for (int i = 0; i < args.length; i++) { | ||||
| exec.createArg().setValue(args[i]); | exec.createArg().setValue(args[i]); | ||||
| @@ -18,8 +18,10 @@ | |||||
| package org.apache.tools.ant.taskdefs.optional.dotnet; | package org.apache.tools.ant.taskdefs.optional.dotnet; | ||||
| import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.taskdefs.ExecTask; | import org.apache.tools.ant.taskdefs.ExecTask; | ||||
| import org.apache.tools.ant.taskdefs.condition.Os; | import org.apache.tools.ant.taskdefs.condition.Os; | ||||
| import org.apache.tools.ant.types.Environment; | |||||
| /** | /** | ||||
| * Specialized <exec> that knows how to deal with Mono vs. Microsoft's | * Specialized <exec> that knows how to deal with Mono vs. Microsoft's | ||||
| @@ -115,4 +117,34 @@ public class DotNetExecTask extends ExecTask { | |||||
| protected final static boolean isMono(String vm) { | protected final static boolean isMono(String vm) { | ||||
| return "mono".equals(vm) || "mint".equals(vm); | return "mono".equals(vm) || "mint".equals(vm); | ||||
| } | } | ||||
| /** | |||||
| * Creates an instance of this task based on a different tasks settings. | |||||
| */ | |||||
| public static DotNetExecTask getTask(Task t, String vm, | |||||
| String executable, | |||||
| Environment env) { | |||||
| DotNetExecTask exec = new DotNetExecTask(); | |||||
| if (vm != null) { | |||||
| exec.setVm(vm); | |||||
| } | |||||
| exec.setProject(t.getProject()); | |||||
| exec.setExecutable(executable); | |||||
| exec.setTaskName(t.getTaskName()); | |||||
| if (env != null) { | |||||
| String[] environment = env.getVariables(); | |||||
| if (environment != null) { | |||||
| for (int i = 0; i < environment.length; i++) { | |||||
| int idx = environment[i].indexOf("="); | |||||
| Environment.Variable v = new Environment.Variable(); | |||||
| v.setKey(environment[i].substring(0, idx)); | |||||
| v.setValue(environment[i].substring(idx + 1)); | |||||
| exec.addEnv(v); | |||||
| } | |||||
| } | |||||
| } | |||||
| return exec; | |||||
| } | |||||
| } | } | ||||
| @@ -211,13 +211,8 @@ public class WixTask extends Task { | |||||
| * potentially adding an /out parameter. | * potentially adding an /out parameter. | ||||
| */ | */ | ||||
| private void run(String executable, List s, File target) { | private void run(String executable, List s, File target) { | ||||
| DotNetExecTask exec = new DotNetExecTask(); | |||||
| if (vm != null) { | |||||
| exec.setVm(vm); | |||||
| } | |||||
| exec.setProject(getProject()); | |||||
| exec.setExecutable(executable); | |||||
| exec.setTaskName(getTaskName()); | |||||
| DotNetExecTask exec = DotNetExecTask.getTask(this, vm, | |||||
| executable, null); | |||||
| Iterator iter = s.iterator(); | Iterator iter = s.iterator(); | ||||
| while (iter.hasNext()) { | while (iter.hasNext()) { | ||||
| File f = (File) iter.next(); | File f = (File) iter.next(); | ||||