198 lines
4.2 KiB
C#
198 lines
4.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Prebuild.Core.Targets
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public struct ToolInfo
|
|
{
|
|
string name;
|
|
string guid;
|
|
string fileExtension;
|
|
string xmlTag;
|
|
string importProject;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the name.
|
|
/// </summary>
|
|
/// <value>The name.</value>
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return name;
|
|
}
|
|
set
|
|
{
|
|
name = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the GUID.
|
|
/// </summary>
|
|
/// <value>The GUID.</value>
|
|
public string Guid
|
|
{
|
|
get
|
|
{
|
|
return guid;
|
|
}
|
|
set
|
|
{
|
|
guid = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the file extension.
|
|
/// </summary>
|
|
/// <value>The file extension.</value>
|
|
public string FileExtension
|
|
{
|
|
get
|
|
{
|
|
return fileExtension;
|
|
}
|
|
set
|
|
{
|
|
fileExtension = value;
|
|
}
|
|
}
|
|
public string LanguageExtension
|
|
{
|
|
get
|
|
{
|
|
switch (this.Name)
|
|
{
|
|
case "C#":
|
|
return ".cs";
|
|
case "VisualBasic":
|
|
return ".vb";
|
|
case "Boo":
|
|
return ".boo";
|
|
default:
|
|
return ".cs";
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Gets or sets the XML tag.
|
|
/// </summary>
|
|
/// <value>The XML tag.</value>
|
|
public string XmlTag
|
|
{
|
|
get
|
|
{
|
|
return xmlTag;
|
|
}
|
|
set
|
|
{
|
|
xmlTag = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the import project property.
|
|
/// </summary>
|
|
/// <value>The ImportProject tag.</value>
|
|
public string ImportProject
|
|
{
|
|
get
|
|
{
|
|
return importProject;
|
|
}
|
|
set
|
|
{
|
|
importProject = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="ToolInfo"/> class.
|
|
/// </summary>
|
|
/// <param name="name">The name.</param>
|
|
/// <param name="guid">The GUID.</param>
|
|
/// <param name="fileExtension">The file extension.</param>
|
|
/// <param name="xml">The XML.</param>
|
|
/// <param name="importProject">The import project.</param>
|
|
public ToolInfo(string name, string guid, string fileExtension, string xml, string importProject)
|
|
{
|
|
this.name = name;
|
|
this.guid = guid;
|
|
this.fileExtension = fileExtension;
|
|
this.xmlTag = xml;
|
|
this.importProject = importProject;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="ToolInfo"/> class.
|
|
/// </summary>
|
|
/// <param name="name">The name.</param>
|
|
/// <param name="guid">The GUID.</param>
|
|
/// <param name="fileExtension">The file extension.</param>
|
|
/// <param name="xml">The XML.</param>
|
|
public ToolInfo(string name, string guid, string fileExtension, string xml)
|
|
{
|
|
this.name = name;
|
|
this.guid = guid;
|
|
this.fileExtension = fileExtension;
|
|
this.xmlTag = xml;
|
|
this.importProject = "$(MSBuildBinPath)\\Microsoft." + xml + ".Targets";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Equals operator
|
|
/// </summary>
|
|
/// <param name="obj">ToolInfo to compare</param>
|
|
/// <returns>true if toolInfos are equal</returns>
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj == null)
|
|
{
|
|
throw new ArgumentNullException("obj");
|
|
}
|
|
if (obj.GetType() != typeof(ToolInfo))
|
|
return false;
|
|
|
|
ToolInfo c = (ToolInfo)obj;
|
|
return ((this.name == c.name) && (this.guid == c.guid) && (this.fileExtension == c.fileExtension) && (this.importProject == c.importProject));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Equals operator
|
|
/// </summary>
|
|
/// <param name="c1">ToolInfo to compare</param>
|
|
/// <param name="c2">ToolInfo to compare</param>
|
|
/// <returns>True if toolInfos are equal</returns>
|
|
public static bool operator ==(ToolInfo c1, ToolInfo c2)
|
|
{
|
|
return ((c1.name == c2.name) && (c1.guid == c2.guid) && (c1.fileExtension == c2.fileExtension) && (c1.importProject == c2.importProject) && (c1.xmlTag == c2.xmlTag));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Not equals operator
|
|
/// </summary>
|
|
/// <param name="c1">ToolInfo to compare</param>
|
|
/// <param name="c2">ToolInfo to compare</param>
|
|
/// <returns>True if toolInfos are not equal</returns>
|
|
public static bool operator !=(ToolInfo c1, ToolInfo c2)
|
|
{
|
|
return !(c1 == c2);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Hash Code
|
|
/// </summary>
|
|
/// <returns>Hash code</returns>
|
|
public override int GetHashCode()
|
|
{
|
|
return name.GetHashCode() ^ guid.GetHashCode() ^ this.fileExtension.GetHashCode() ^ this.importProject.GetHashCode() ^ this.xmlTag.GetHashCode();
|
|
|
|
}
|
|
}
|
|
}
|