protected override string GenerateFullPathToTool ()
{
- return Path.Combine (ToolPath, ToolExe);
+ if (!string.IsNullOrEmpty (ToolPath))
+ return Path.Combine (ToolPath, ToolExe);
+ return ToolLocationHelper.GetPathToDotNetFrameworkFile (ToolExe, TargetDotNetFrameworkVersion.VersionLatest);
}
public string AlgorithmId {
}
protected override string ToolName {
- get {
- return MSBuildUtils.RunningOnWindows ? "al.bat" : "al";
- }
+ get { return "al.exe"; }
}
public string Trademark {
protected internal override void AddResponseFileCommands (CommandLineBuilderExtension commandLine)
{
+#if !NET_4_0
+ //pre-MSBuild 2 targets don't support multi-targeting, so tell compiler to use 2.0 corlib
+ commandLine.AppendSwitch ("/sdk:2");
+#endif
base.AddResponseFileCommands (commandLine);
if (AdditionalLibPaths != null && AdditionalLibPaths.Length > 0)
protected override string GenerateFullPathToTool ()
{
- string exe = !string.IsNullOrEmpty (ToolExe)? ToolExe : ToolName;
- string path = ToolPath;
if (!string.IsNullOrEmpty (ToolPath))
- return Path.Combine (path, exe);
- return ToolLocationHelper.GetPathToDotNetFrameworkFile (exe, TargetDotNetFrameworkVersion.VersionLatest);
+ return Path.Combine (ToolPath, ToolExe);
+ return ToolLocationHelper.GetPathToDotNetFrameworkFile (ToolExe, TargetDotNetFrameworkVersion.VersionLatest);
}
[MonoTODO]
protected override string GenerateFullPathToTool ()
{
- return Path.Combine (ToolPath, ToolExe);
+ if (!string.IsNullOrEmpty (ToolPath))
+ return Path.Combine (ToolPath, ToolExe);
+ return ToolLocationHelper.GetPathToDotNetFrameworkFile (ToolExe, TargetDotNetFrameworkVersion.VersionLatest);
}
protected override MessageImportance StandardOutputLoggingImportance {
}
protected override string ToolName {
- get { return MSBuildUtils.RunningOnWindows ? "resgen2.bat" : "resgen2"; }
+ get { return "resgen.exe"; }
}
public string SourceFile { get; set; }
protected override string GenerateFullPathToTool ()
{
- return Path.Combine (ToolPath, ToolExe);
+ if (!string.IsNullOrEmpty (ToolPath))
+ return Path.Combine (ToolPath, ToolExe);
+ return ToolLocationHelper.GetPathToDotNetFrameworkFile (ToolExe, TargetDotNetFrameworkVersion.VersionLatest);
}
protected override bool ValidateParameters()
[MonoTODO]
protected override string GenerateFullPathToTool ()
{
- return Path.Combine (ToolPath, ToolExe);
+ if (!string.IsNullOrEmpty (ToolPath))
+ return Path.Combine (ToolPath, ToolExe);
+ return ToolLocationHelper.GetPathToDotNetFrameworkFile (ToolExe, TargetDotNetFrameworkVersion.VersionLatest);
}
[MonoTODO]
{
this.TaskResources = taskResources;
this.HelpKeywordPrefix = helpKeywordPrefix;
- this.toolPath = MonoLocationHelper.GetBinDir ();
this.responseFileEncoding = Encoding.UTF8;
this.timeout = Int32.MaxValue;
}
public virtual string ToolExe
{
get {
- if (toolExe == null)
+ if (string.IsNullOrEmpty (toolExe))
return ToolName;
else
return toolExe;
}
- set {
- if (!String.IsNullOrEmpty (value))
- toolExe = value;
- }
+ set { toolExe = value; }
}
protected abstract string ToolName
public string ToolPath
{
get { return toolPath; }
- set {
- if (!String.IsNullOrEmpty (value))
- toolPath = value;
- }
+ set { toolPath = value; }
}
// Keep in sync with mcs/class/System/Microsoft.CSharp/CSharpCodeCompiler.cs
task.Codes.Clear ();
}
}
+
+ [Test]
+ public void ToolExeAndPath ()
+ {
+ TestToolTask a = new TestToolTask ();
+ Assert.AreEqual (a.ToolExe, "TestTool.exe", "#1");
+ a.ToolExe = "Foo";
+ Assert.AreEqual (a.ToolExe, "Foo", "#2");
+ a.ToolExe = "";
+ Assert.AreEqual (a.ToolExe, "TestTool.exe", "#3");
+
+ Assert.AreEqual (a.ToolPath, null, "#4");
+ a.ToolPath = "Bar";
+ Assert.AreEqual (a.ToolPath, "Bar", "#5");
+ a.ToolPath = "";
+ Assert.AreEqual (a.ToolPath, "", "#6");
+ }
}
class LogEventsFromTextOutputToolTask : ToolTask {
Codes.Add (e.Code);
}
}
+
+ class TestToolTask : ToolTask {
+
+ protected override string ToolName {
+ get { return "TestTool.exe"; }
+ }
+
+ protected override string GenerateFullPathToTool ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
}
</Target>
<Import Project="Microsoft.Common.targets" />
-
- <PropertyGroup>
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Unix'">gmcs</CscToolExe>
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Unix'">gmcs.bat</CscToolExe>
- </PropertyGroup>
</Project>
</Target>
<Import Project="Microsoft.Common.targets" />
-
- <PropertyGroup>
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Unix'">gmcs</CscToolExe>
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Unix'">gmcs.bat</CscToolExe>
- </PropertyGroup>
</Project>