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(); | ||||