diff --git a/Prebuild/src/Core/Attributes/DataNodeAttribute.cs b/Prebuild/src/Core/Attributes/DataNodeAttribute.cs
index f1938a2e20..5bff3683b0 100644
--- a/Prebuild/src/Core/Attributes/DataNodeAttribute.cs
+++ b/Prebuild/src/Core/Attributes/DataNodeAttribute.cs
@@ -28,45 +28,45 @@ using System.Collections.Specialized;
namespace Prebuild.Core.Attributes
{
- ///
- ///
- ///
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple=true)]
- public sealed class DataNodeAttribute : Attribute
- {
- #region Fields
+ ///
+ ///
+ ///
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
+ public sealed class DataNodeAttribute : Attribute
+ {
+ #region Fields
- private string m_Name = "unknown";
+ private string m_Name = "unknown";
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- /// The name.
- public DataNodeAttribute(string name)
- {
- m_Name = name;
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name.
+ public DataNodeAttribute(string name)
+ {
+ m_Name = name;
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Attributes/OptionNodeAttribute.cs b/Prebuild/src/Core/Attributes/OptionNodeAttribute.cs
index 2d6a6a7bfc..73e2698844 100644
--- a/Prebuild/src/Core/Attributes/OptionNodeAttribute.cs
+++ b/Prebuild/src/Core/Attributes/OptionNodeAttribute.cs
@@ -27,45 +27,45 @@ using System;
namespace Prebuild.Core.Attributes
{
- ///
- ///
- ///
- [AttributeUsage(AttributeTargets.Field)]
- public sealed class OptionNodeAttribute : Attribute
- {
- #region Fields
+ ///
+ ///
+ ///
+ [AttributeUsage(AttributeTargets.Field)]
+ public sealed class OptionNodeAttribute : Attribute
+ {
+ #region Fields
- private string m_NodeName;
+ private string m_NodeName;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- /// Name of the node.
- public OptionNodeAttribute(string nodeName)
- {
- m_NodeName = nodeName;
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Name of the node.
+ public OptionNodeAttribute(string nodeName)
+ {
+ m_NodeName = nodeName;
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name of the node.
- ///
- /// The name of the node.
- public string NodeName
- {
- get
- {
- return m_NodeName;
- }
- }
+ ///
+ /// Gets the name of the node.
+ ///
+ /// The name of the node.
+ public string NodeName
+ {
+ get
+ {
+ return m_NodeName;
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Attributes/TargetAttribute.cs b/Prebuild/src/Core/Attributes/TargetAttribute.cs
index 5ad62ee033..a5d3101a43 100644
--- a/Prebuild/src/Core/Attributes/TargetAttribute.cs
+++ b/Prebuild/src/Core/Attributes/TargetAttribute.cs
@@ -27,45 +27,45 @@ using System;
namespace Prebuild.Core.Attributes
{
- ///
- ///
- ///
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
- public sealed class TargetAttribute : Attribute
- {
- #region Fields
+ ///
+ ///
+ ///
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
+ public sealed class TargetAttribute : Attribute
+ {
+ #region Fields
- private string m_Name;
+ private string m_Name;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- /// The name.
- public TargetAttribute(string name)
- {
- m_Name = name;
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name.
+ public TargetAttribute(string name)
+ {
+ m_Name = name;
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/FatalException.cs b/Prebuild/src/Core/FatalException.cs
index 348790568f..a302146721 100644
--- a/Prebuild/src/Core/FatalException.cs
+++ b/Prebuild/src/Core/FatalException.cs
@@ -28,58 +28,58 @@ using System.Runtime.Serialization;
namespace Prebuild.Core
{
- ///
- ///
- ///
- [Serializable()]
- public class FatalException : Exception
- {
- #region Constructors
+ ///
+ ///
+ ///
+ [Serializable()]
+ public class FatalException : Exception
+ {
+ #region Constructors
-
- ///
- /// Initializes a new instance of the class.
- ///
- public FatalException()
- {
- }
- ///
- /// Initializes a new instance of the class.
- ///
- /// The format.
- /// The args.
- public FatalException(string format, params object[] args)
- : base(String.Format(format, args))
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public FatalException()
+ {
+ }
- ///
- /// Exception with specified string
- ///
- /// Exception message
- public FatalException(string message): base(message)
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The format.
+ /// The args.
+ public FatalException(string format, params object[] args)
+ : base(String.Format(format, args))
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- public FatalException(string message, Exception exception) : base(message, exception)
- {
- }
+ ///
+ /// Exception with specified string
+ ///
+ /// Exception message
+ public FatalException(string message) : base(message)
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- protected FatalException(SerializationInfo info, StreamingContext context) : base( info, context )
- {
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public FatalException(string message, Exception exception) : base(message, exception)
+ {
+ }
- #endregion
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ protected FatalException(SerializationInfo info, StreamingContext context) : base(info, context)
+ {
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Interfaces/IDataNode.cs b/Prebuild/src/Core/Interfaces/IDataNode.cs
index 986dd2de8c..d63f07848d 100644
--- a/Prebuild/src/Core/Interfaces/IDataNode.cs
+++ b/Prebuild/src/Core/Interfaces/IDataNode.cs
@@ -26,22 +26,22 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
using System;
using System.Xml;
-namespace Prebuild.Core.Interfaces
+namespace Prebuild.Core.Interfaces
{
- ///
- ///
- ///
- public interface IDataNode
- {
- ///
- /// Gets or sets the parent.
- ///
- /// The parent.
- IDataNode Parent { get; set; }
- ///
- /// Parses the specified node.
- ///
- /// The node.
- void Parse(XmlNode node);
- }
+ ///
+ ///
+ ///
+ public interface IDataNode
+ {
+ ///
+ /// Gets or sets the parent.
+ ///
+ /// The parent.
+ IDataNode Parent { get; set; }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ void Parse(XmlNode node);
+ }
}
diff --git a/Prebuild/src/Core/Interfaces/ITarget.cs b/Prebuild/src/Core/Interfaces/ITarget.cs
index 47115c658b..36c2f412a3 100644
--- a/Prebuild/src/Core/Interfaces/ITarget.cs
+++ b/Prebuild/src/Core/Interfaces/ITarget.cs
@@ -25,27 +25,27 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
using System;
-namespace Prebuild.Core.Interfaces
+namespace Prebuild.Core.Interfaces
{
- ///
- ///
- ///
- public interface ITarget
- {
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- void Write(Kernel kern);
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- void Clean(Kernel kern);
- ///
- /// Gets the name.
- ///
- /// The name.
- string Name { get; }
- }
+ ///
+ ///
+ ///
+ public interface ITarget
+ {
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ void Write(Kernel kern);
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ void Clean(Kernel kern);
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ string Name { get; }
+ }
}
\ No newline at end of file
diff --git a/Prebuild/src/Core/Kernel.cs b/Prebuild/src/Core/Kernel.cs
index 225fdb8dab..638f9509f1 100755
--- a/Prebuild/src/Core/Kernel.cs
+++ b/Prebuild/src/Core/Kernel.cs
@@ -49,265 +49,265 @@ using Prebuild.Core.Interfaces;
using Prebuild.Core.Nodes;
using Prebuild.Core.Utilities;
-namespace Prebuild.Core
+namespace Prebuild.Core
{
- ///
- ///
- ///
- public class Kernel : IDisposable
- {
- #region Inner Classes
+ ///
+ ///
+ ///
+ public class Kernel : IDisposable
+ {
+ #region Inner Classes
- private struct NodeEntry
- {
- public Type Type;
- public DataNodeAttribute Attribute;
- }
+ private struct NodeEntry
+ {
+ public Type Type;
+ public DataNodeAttribute Attribute;
+ }
- #endregion
+ #endregion
- #region Fields
+ #region Fields
- private static readonly Kernel m_Instance = new Kernel();
+ private static readonly Kernel m_Instance = new Kernel();
- ///
- /// This must match the version of the schema that is embeeded
- ///
- private const string m_SchemaVersion = "1.10";
- private const string m_Schema = "prebuild-" + m_SchemaVersion + ".xsd";
- private const string m_SchemaURI = "http://dnpb.sourceforge.net/schemas/" + m_Schema;
- bool disposed;
- private Version m_Version;
- private const string m_Revision = "w";
- private CommandLineCollection m_CommandLine;
- private Log m_Log;
- private CurrentDirectory m_CurrentWorkingDirectory;
+ ///
+ /// This must match the version of the schema that is embeeded
+ ///
+ private const string m_SchemaVersion = "1.10";
+ private const string m_Schema = "prebuild-" + m_SchemaVersion + ".xsd";
+ private const string m_SchemaURI = "http://dnpb.sourceforge.net/schemas/" + m_Schema;
+ bool disposed;
+ private Version m_Version;
+ private const string m_Revision = "w";
+ private CommandLineCollection m_CommandLine;
+ private Log m_Log;
+ private CurrentDirectory m_CurrentWorkingDirectory;
[Obsolete]
private XmlSchemaCollection m_Schemas;
private readonly Dictionary m_Targets = new Dictionary();
private readonly Dictionary m_Nodes = new Dictionary();
- readonly List m_Solutions = new List();
+ readonly List m_Solutions = new List();
string m_Target;
bool cmdlineTargetFramework;
FrameworkVersion m_TargetFramework; //Overrides all project settings
string m_Conditionals; //Adds to all project settings
public string ForcedConditionals { get { return m_Conditionals; } }
- string m_Clean;
- string[] m_RemoveDirectories;
- XmlDocument m_CurrentDoc;
- bool m_PauseAfterFinish;
- string[] m_ProjectGroups;
+ string m_Clean;
+ string[] m_RemoveDirectories;
+ XmlDocument m_CurrentDoc;
+ bool m_PauseAfterFinish;
+ string[] m_ProjectGroups;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- private Kernel()
- {
- }
+ private Kernel()
+ {
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets a value indicating whether [pause after finish].
- ///
- /// true if [pause after finish]; otherwise, false.
- public bool PauseAfterFinish
- {
- get
- {
- return m_PauseAfterFinish;
- }
- }
+ ///
+ /// Gets a value indicating whether [pause after finish].
+ ///
+ /// true if [pause after finish]; otherwise, false.
+ public bool PauseAfterFinish
+ {
+ get
+ {
+ return m_PauseAfterFinish;
+ }
+ }
- ///
- /// Gets the instance.
- ///
- /// The instance.
- public static Kernel Instance
- {
- get
- {
- return m_Instance;
- }
- }
+ ///
+ /// Gets the instance.
+ ///
+ /// The instance.
+ public static Kernel Instance
+ {
+ get
+ {
+ return m_Instance;
+ }
+ }
- ///
- /// Gets the version.
- ///
- /// The version.
- public string Version
- {
- get
- {
- return String.Format("{0}.{1}.{2}{3}", m_Version.Major, m_Version.Minor, m_Version.Build, m_Revision);
- }
- }
+ ///
+ /// Gets the version.
+ ///
+ /// The version.
+ public string Version
+ {
+ get
+ {
+ return String.Format("{0}.{1}.{2}{3}", m_Version.Major, m_Version.Minor, m_Version.Build, m_Revision);
+ }
+ }
- ///
- /// Gets the command line.
- ///
- /// The command line.
- public CommandLineCollection CommandLine
- {
- get
- {
- return m_CommandLine;
- }
- }
+ ///
+ /// Gets the command line.
+ ///
+ /// The command line.
+ public CommandLineCollection CommandLine
+ {
+ get
+ {
+ return m_CommandLine;
+ }
+ }
- ///
- /// Gets the targets.
- ///
- /// The targets.
- public Dictionary Targets
- {
- get
- {
- return m_Targets;
- }
- }
+ ///
+ /// Gets the targets.
+ ///
+ /// The targets.
+ public Dictionary Targets
+ {
+ get
+ {
+ return m_Targets;
+ }
+ }
- ///
- /// Gets the log.
- ///
- /// The log.
- public Log Log
- {
- get
- {
- return m_Log;
- }
- }
+ ///
+ /// Gets the log.
+ ///
+ /// The log.
+ public Log Log
+ {
+ get
+ {
+ return m_Log;
+ }
+ }
- ///
- /// Gets the current working directory.
- ///
- /// The current working directory.
- public CurrentDirectory CurrentWorkingDirectory
- {
- get
- {
- return m_CurrentWorkingDirectory;
- }
- }
+ ///
+ /// Gets the current working directory.
+ ///
+ /// The current working directory.
+ public CurrentDirectory CurrentWorkingDirectory
+ {
+ get
+ {
+ return m_CurrentWorkingDirectory;
+ }
+ }
- ///
- /// Gets the solutions.
- ///
- /// The solutions.
- public List Solutions
- {
- get
- {
- return m_Solutions;
- }
- }
-
- ///
- /// Gets the XmlDocument object representing the prebuild.xml
- /// being processed
- ///
- /// The XmlDocument object
- public XmlDocument CurrentDoc
- {
- get
- {
- return m_CurrentDoc;
- }
- }
+ ///
+ /// Gets the solutions.
+ ///
+ /// The solutions.
+ public List Solutions
+ {
+ get
+ {
+ return m_Solutions;
+ }
+ }
- #endregion
+ ///
+ /// Gets the XmlDocument object representing the prebuild.xml
+ /// being processed
+ ///
+ /// The XmlDocument object
+ public XmlDocument CurrentDoc
+ {
+ get
+ {
+ return m_CurrentDoc;
+ }
+ }
- #region Private Methods
+ #endregion
- private static void RemoveDirectories(string rootDir, string[] dirNames)
- {
- foreach(string dir in Directory.GetDirectories(rootDir))
- {
- string simpleName = Path.GetFileName(dir);
+ #region Private Methods
- if(Array.IndexOf(dirNames, simpleName) != -1)
- {
- //delete if the name matches one of the directory names to delete
- string fullDirPath = Path.GetFullPath(dir);
- Directory.Delete(fullDirPath,true);
- }
- else//not a match, so check children
- {
- RemoveDirectories(dir,dirNames);
- //recurse, checking children for them
- }
- }
- }
+ private static void RemoveDirectories(string rootDir, string[] dirNames)
+ {
+ foreach (string dir in Directory.GetDirectories(rootDir))
+ {
+ string simpleName = Path.GetFileName(dir);
-// private void RemoveDirectoryMatches(string rootDir, string dirPattern)
-// {
-// foreach(string dir in Directory.GetDirectories(rootDir))
-// {
-// foreach(string match in Directory.GetDirectories(dir))
-// {//delete all child directories that match
-// Directory.Delete(Path.GetFullPath(match),true);
-// }
-// //recure through the rest checking for nested matches to delete
-// RemoveDirectoryMatches(dir,dirPattern);
-// }
-// }
+ if (Array.IndexOf(dirNames, simpleName) != -1)
+ {
+ //delete if the name matches one of the directory names to delete
+ string fullDirPath = Path.GetFullPath(dir);
+ Directory.Delete(fullDirPath, true);
+ }
+ else//not a match, so check children
+ {
+ RemoveDirectories(dir, dirNames);
+ //recurse, checking children for them
+ }
+ }
+ }
- private void LoadSchema()
- {
- Assembly assembly = GetType().Assembly;
- Stream stream = assembly.GetManifestResourceStream("Prebuild.data." + m_Schema);
- if(stream == null)
- {
- //try without the default namespace prepending to it in case was compiled with SharpDevelop or MonoDevelop instead of Visual Studio .NET
- stream = assembly.GetManifestResourceStream(m_Schema);
- if(stream == null)
- {
- throw new System.Reflection.TargetException(string.Format("Could not find the scheme embedded resource file '{0}'.", m_Schema));
- }
- }
- XmlReader schema = new XmlTextReader(stream);
-
- m_Schemas = new XmlSchemaCollection();
- m_Schemas.Add(m_SchemaURI, schema);
- }
+ // private void RemoveDirectoryMatches(string rootDir, string dirPattern)
+ // {
+ // foreach(string dir in Directory.GetDirectories(rootDir))
+ // {
+ // foreach(string match in Directory.GetDirectories(dir))
+ // {//delete all child directories that match
+ // Directory.Delete(Path.GetFullPath(match),true);
+ // }
+ // //recure through the rest checking for nested matches to delete
+ // RemoveDirectoryMatches(dir,dirPattern);
+ // }
+ // }
- private void CacheVersion()
- {
- m_Version = Assembly.GetEntryAssembly().GetName().Version;
- }
+ private void LoadSchema()
+ {
+ Assembly assembly = GetType().Assembly;
+ Stream stream = assembly.GetManifestResourceStream("Prebuild.data." + m_Schema);
+ if (stream == null)
+ {
+ //try without the default namespace prepending to it in case was compiled with SharpDevelop or MonoDevelop instead of Visual Studio .NET
+ stream = assembly.GetManifestResourceStream(m_Schema);
+ if (stream == null)
+ {
+ throw new System.Reflection.TargetException(string.Format("Could not find the scheme embedded resource file '{0}'.", m_Schema));
+ }
+ }
+ XmlReader schema = new XmlTextReader(stream);
- private void CacheTargets(Assembly assm)
- {
- foreach(Type t in assm.GetTypes())
- {
- TargetAttribute ta = (TargetAttribute)Helper.CheckType(t, typeof(TargetAttribute), typeof(ITarget));
+ m_Schemas = new XmlSchemaCollection();
+ m_Schemas.Add(m_SchemaURI, schema);
+ }
- if(ta == null)
- continue;
-
- if (t.IsAbstract)
- continue;
-
- ITarget target = (ITarget)assm.CreateInstance(t.FullName);
- if (target == null)
- {
- throw new MissingMethodException("Could not create ITarget instance");
- }
+ private void CacheVersion()
+ {
+ m_Version = Assembly.GetEntryAssembly().GetName().Version;
+ }
- m_Targets[ta.Name] = target;
- }
- }
+ private void CacheTargets(Assembly assm)
+ {
+ foreach (Type t in assm.GetTypes())
+ {
+ TargetAttribute ta = (TargetAttribute)Helper.CheckType(t, typeof(TargetAttribute), typeof(ITarget));
- private void CacheNodeTypes(Assembly assm)
- {
- foreach(Type t in assm.GetTypes())
- {
+ if (ta == null)
+ continue;
+
+ if (t.IsAbstract)
+ continue;
+
+ ITarget target = (ITarget)assm.CreateInstance(t.FullName);
+ if (target == null)
+ {
+ throw new MissingMethodException("Could not create ITarget instance");
+ }
+
+ m_Targets[ta.Name] = target;
+ }
+ }
+
+ private void CacheNodeTypes(Assembly assm)
+ {
+ foreach (Type t in assm.GetTypes())
+ {
foreach (DataNodeAttribute dna in t.GetCustomAttributes(typeof(DataNodeAttribute), true))
{
NodeEntry ne = new NodeEntry();
@@ -315,11 +315,11 @@ namespace Prebuild.Core
ne.Attribute = dna;
m_Nodes[dna.Name] = ne;
}
- }
- }
+ }
+ }
- private void LogBanner()
- {
+ private void LogBanner()
+ {
m_Log.Write("Prebuild v" + Version);
m_Log.Write("Copyright (c) 2004-2010");
m_Log.Write("Matthew Holmes (matthew@wildfiregames.com),");
@@ -330,10 +330,10 @@ namespace Prebuild.Core
m_Log.Write("John Hurliman (john.hurliman@intel.com),");
m_Log.Write("WhiteCore build 2015 (greythane@gmail.com),");
m_Log.Write("OpenSimulator build 2017 Ubit Umarov,");
- m_Log.Write ("");
+ m_Log.Write("");
m_Log.Write("See 'prebuild /usage' for help");
m_Log.Write();
- }
+ }
@@ -361,31 +361,31 @@ namespace Prebuild.Core
///
///
public void ProcessFile(string file, IList solutions)
- {
- m_CurrentWorkingDirectory.Push();
-
- string path = file;
- try
- {
- try
- {
- path = Helper.ResolvePath(path);
- }
- catch(ArgumentException)
- {
- m_Log.Write("Could not open Prebuild file: " + path);
- m_CurrentWorkingDirectory.Pop();
- return;
- }
+ {
+ m_CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(path));
-
- XmlTextReader reader = new XmlTextReader(path);
+ string path = file;
+ try
+ {
+ try
+ {
+ path = Helper.ResolvePath(path);
+ }
+ catch (ArgumentException)
+ {
+ m_Log.Write("Could not open Prebuild file: " + path);
+ m_CurrentWorkingDirectory.Pop();
+ return;
+ }
+
+ Helper.SetCurrentDir(Path.GetDirectoryName(path));
+
+ XmlTextReader reader = new XmlTextReader(path);
Core.Parse.Preprocessor pre = new Core.Parse.Preprocessor();
//register command line arguments as XML variables
- IEnumerator> dict = m_CommandLine.GetEnumerator();
+ IEnumerator> dict = m_CommandLine.GetEnumerator();
while (dict.MoveNext())
{
string name = dict.Current.Key.Trim();
@@ -393,42 +393,42 @@ namespace Prebuild.Core
pre.RegisterVariable(name, dict.Current.Value);
}
- string xml = pre.Process(reader);//remove script and evaulate pre-proccessing to get schema-conforming XML
+ string xml = pre.Process(reader);//remove script and evaulate pre-proccessing to get schema-conforming XML
- // See if the user put into a pseudo target of "prebuild:preprocessed-input" to indicate they want to see the
- // output before the system processes it.
- if (m_CommandLine.WasPassed("ppi"))
- {
- // Get the filename if there is one, otherwise use a default.
- string ppiFile = m_CommandLine["ppi"];
- if (ppiFile == null || ppiFile.Trim().Length == 0)
- {
- ppiFile = "preprocessed-input.xml";
- }
+ // See if the user put into a pseudo target of "prebuild:preprocessed-input" to indicate they want to see the
+ // output before the system processes it.
+ if (m_CommandLine.WasPassed("ppi"))
+ {
+ // Get the filename if there is one, otherwise use a default.
+ string ppiFile = m_CommandLine["ppi"];
+ if (ppiFile == null || ppiFile.Trim().Length == 0)
+ {
+ ppiFile = "preprocessed-input.xml";
+ }
- // Write out the string to the given stream.
- try
- {
- using (StreamWriter ppiWriter = new StreamWriter(ppiFile))
- {
- ppiWriter.WriteLine(xml);
- }
- }
- catch(IOException ex)
- {
- Console.WriteLine("Could not write PPI file '{0}': {1}", ppiFile, ex.Message);
- }
+ // Write out the string to the given stream.
+ try
+ {
+ using (StreamWriter ppiWriter = new StreamWriter(ppiFile))
+ {
+ ppiWriter.WriteLine(xml);
+ }
+ }
+ catch (IOException ex)
+ {
+ Console.WriteLine("Could not write PPI file '{0}': {1}", ppiFile, ex.Message);
+ }
- // Finish processing this special tag.
- return;
- }
-
- m_CurrentDoc = new XmlDocument();
- try
- {
+ // Finish processing this special tag.
+ return;
+ }
+
+ m_CurrentDoc = new XmlDocument();
+ try
+ {
#if NO_VALIDATE
- XmlReader validator = XmlReader.Create(new StringReader(xml));
- m_CurrentDoc.Load(validator);
+ XmlReader validator = XmlReader.Create(new StringReader(xml));
+ m_CurrentDoc.Load(validator);
#else
XmlValidatingReader validator = new XmlValidatingReader(new XmlTextReader(new StringReader(xml)));
@@ -439,411 +439,412 @@ namespace Prebuild.Core
}
m_CurrentDoc.Load(validator);
#endif
- }
- catch(XmlException e)
- {
- throw new XmlException(e.ToString());
- }
+ }
+ catch (XmlException e)
+ {
+ throw new XmlException(e.ToString());
+ }
- //is there a purpose to writing it? An syntax/schema problem would have been found during pre.Process() and reported with details
- if(m_CommandLine.WasPassed("ppo"))
- {
- string ppoFile = m_CommandLine["ppo"];
- if(ppoFile == null || ppoFile.Trim().Length < 1)
- {
- ppoFile = "preprocessed.xml";
- }
+ //is there a purpose to writing it? An syntax/schema problem would have been found during pre.Process() and reported with details
+ if (m_CommandLine.WasPassed("ppo"))
+ {
+ string ppoFile = m_CommandLine["ppo"];
+ if (ppoFile == null || ppoFile.Trim().Length < 1)
+ {
+ ppoFile = "preprocessed.xml";
+ }
- StreamWriter writer = null;
- try
- {
- writer = new StreamWriter(ppoFile);
- writer.Write(xml);
- }
- catch(IOException ex)
- {
- Console.WriteLine("Could not write PPO file '{0}': {1}", ppoFile, ex.Message);
- }
- finally
- {
- if(writer != null)
- {
- writer.Close();
- }
- }
- return;
- }
- //start reading the xml config file
- XmlElement rootNode = m_CurrentDoc.DocumentElement;
- //string suggestedVersion = Helper.AttributeValue(rootNode,"version","1.0");
- Helper.CheckForOSVariables = Helper.ParseBoolean(rootNode,"checkOsVars",false);
+ StreamWriter writer = null;
+ try
+ {
+ writer = new StreamWriter(ppoFile);
+ writer.Write(xml);
+ }
+ catch (IOException ex)
+ {
+ Console.WriteLine("Could not write PPO file '{0}': {1}", ppoFile, ex.Message);
+ }
+ finally
+ {
+ if (writer != null)
+ {
+ writer.Close();
+ }
+ }
+ return;
+ }
+ //start reading the xml config file
+ XmlElement rootNode = m_CurrentDoc.DocumentElement;
+ //string suggestedVersion = Helper.AttributeValue(rootNode,"version","1.0");
+ Helper.CheckForOSVariables = Helper.ParseBoolean(rootNode, "checkOsVars", false);
- foreach(XmlNode node in rootNode.ChildNodes)//solutions or if pre-proc instructions
- {
- IDataNode dataNode = ParseNode(node, null);
- if(dataNode is ProcessNode)
- {
- ProcessNode proc = (ProcessNode)dataNode;
- if(proc.IsValid)
- {
- ProcessFile(proc.Path);
- }
- }
- else if(dataNode is SolutionNode)
- {
- solutions.Add((SolutionNode)dataNode);
- }
- }
- }
- catch(XmlSchemaException xse)
- {
- m_Log.Write("XML validation error at line {0} in {1}:\n\n{2}",
- xse.LineNumber, path, xse.Message);
- }
- finally
- {
- m_CurrentWorkingDirectory.Pop();
- }
- }
+ foreach (XmlNode node in rootNode.ChildNodes)//solutions or if pre-proc instructions
+ {
+ IDataNode dataNode = ParseNode(node, null);
+ if (dataNode is ProcessNode)
+ {
+ ProcessNode proc = (ProcessNode)dataNode;
+ if (proc.IsValid)
+ {
+ ProcessFile(proc.Path);
+ }
+ }
+ else if (dataNode is SolutionNode)
+ {
+ solutions.Add((SolutionNode)dataNode);
+ }
+ }
+ }
+ catch (XmlSchemaException xse)
+ {
+ m_Log.Write("XML validation error at line {0} in {1}:\n\n{2}",
+ xse.LineNumber, path, xse.Message);
+ }
+ finally
+ {
+ m_CurrentWorkingDirectory.Pop();
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Allows the project.
- ///
- /// The project groups flags.
- ///
- public bool AllowProject(string projectGroupsFlags)
- {
- if(m_ProjectGroups != null && m_ProjectGroups.Length > 0)
- {
- if(projectGroupsFlags != null && projectGroupsFlags.Length == 0)
- {
- foreach(string group in projectGroupsFlags.Split('|'))
- {
- if(Array.IndexOf(m_ProjectGroups, group) != -1) //if included in the filter list
- {
- return true;
- }
- }
- }
- return false;//not included in the list or no groups specified for the project
- }
- return true;//no filter specified in the command line args
- }
+ ///
+ /// Allows the project.
+ ///
+ /// The project groups flags.
+ ///
+ public bool AllowProject(string projectGroupsFlags)
+ {
+ if (m_ProjectGroups != null && m_ProjectGroups.Length > 0)
+ {
+ if (projectGroupsFlags != null && projectGroupsFlags.Length == 0)
+ {
+ foreach (string group in projectGroupsFlags.Split('|'))
+ {
+ if (Array.IndexOf(m_ProjectGroups, group) != -1) //if included in the filter list
+ {
+ return true;
+ }
+ }
+ }
+ return false;//not included in the list or no groups specified for the project
+ }
+ return true;//no filter specified in the command line args
+ }
- ///
- /// Gets the type of the node.
- ///
- /// The node.
- ///
- public Type GetNodeType(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- if(!m_Nodes.ContainsKey(node.Name))
- {
- return null;
- }
+ ///
+ /// Gets the type of the node.
+ ///
+ /// The node.
+ ///
+ public Type GetNodeType(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (!m_Nodes.ContainsKey(node.Name))
+ {
+ return null;
+ }
- NodeEntry ne = m_Nodes[node.Name];
- return ne.Type;
- }
+ NodeEntry ne = m_Nodes[node.Name];
+ return ne.Type;
+ }
- ///
- ///
- ///
- ///
- ///
- ///
- public IDataNode ParseNode(XmlNode node, IDataNode parent)
- {
- return ParseNode(node, parent, null);
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public IDataNode ParseNode(XmlNode node, IDataNode parent)
+ {
+ return ParseNode(node, parent, null);
+ }
- //Create an instance of the data node type that is mapped to the name of the xml DOM node
- ///
- /// Parses the node.
- ///
- /// The node.
- /// The parent.
- /// The pre node.
- ///
- public IDataNode ParseNode(XmlNode node, IDataNode parent, IDataNode preNode)
- {
- IDataNode dataNode;
+ //Create an instance of the data node type that is mapped to the name of the xml DOM node
+ ///
+ /// Parses the node.
+ ///
+ /// The node.
+ /// The parent.
+ /// The pre node.
+ ///
+ public IDataNode ParseNode(XmlNode node, IDataNode parent, IDataNode preNode)
+ {
+ IDataNode dataNode;
- try
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- if(preNode == null)
- {
- if(!m_Nodes.ContainsKey(node.Name))
- {
- Console.WriteLine("WARNING: Unknown XML node: " + node.Name);
- return null;
- }
+ try
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (preNode == null)
+ {
+ if (!m_Nodes.ContainsKey(node.Name))
+ {
+ Console.WriteLine("WARNING: Unknown XML node: " + node.Name);
+ return null;
+ }
- NodeEntry ne = m_Nodes[node.Name];
- Type type = ne.Type;
- //DataNodeAttribute dna = ne.Attribute;
+ NodeEntry ne = m_Nodes[node.Name];
+ Type type = ne.Type;
+ //DataNodeAttribute dna = ne.Attribute;
- dataNode = (IDataNode)type.Assembly.CreateInstance(type.FullName);
- if(dataNode == null)
- {
- throw new System.Reflection.TargetException("Could not create new parser instance: " + type.FullName);
- }
- }
- else
- dataNode = preNode;
+ dataNode = (IDataNode)type.Assembly.CreateInstance(type.FullName);
+ if (dataNode == null)
+ {
+ throw new System.Reflection.TargetException("Could not create new parser instance: " + type.FullName);
+ }
+ }
+ else
+ dataNode = preNode;
- dataNode.Parent = parent;
+ dataNode.Parent = parent;
if (cmdlineTargetFramework && dataNode is ProjectNode)
{
((ProjectNode)dataNode).FrameworkVersion = m_TargetFramework;
}
- dataNode.Parse(node);
- }
- catch(WarningException wex)
- {
- m_Log.Write(LogType.Warning, wex.Message);
- return null;
- }
- catch(FatalException fex)
- {
- m_Log.WriteException(LogType.Error, fex);
- throw;
- }
- catch(Exception ex)
- {
- m_Log.WriteException(LogType.Error, ex);
- throw;
- }
+ dataNode.Parse(node);
+ }
+ catch (WarningException wex)
+ {
+ m_Log.Write(LogType.Warning, wex.Message);
+ return null;
+ }
+ catch (FatalException fex)
+ {
+ m_Log.WriteException(LogType.Error, fex);
+ throw;
+ }
+ catch (Exception ex)
+ {
+ m_Log.WriteException(LogType.Error, ex);
+ throw;
+ }
- return dataNode;
- }
+ return dataNode;
+ }
- ///
- /// Initializes the specified target.
- ///
- /// The target.
- /// The args.
- public void Initialize(LogTargets target, string[] args)
- {
- CacheTargets(GetType().Assembly);
- CacheNodeTypes(GetType().Assembly);
- CacheVersion();
+ ///
+ /// Initializes the specified target.
+ ///
+ /// The target.
+ /// The args.
+ public void Initialize(LogTargets target, string[] args)
+ {
+ CacheTargets(GetType().Assembly);
+ CacheNodeTypes(GetType().Assembly);
+ CacheVersion();
- m_CommandLine = new CommandLineCollection(args);
-
- string logFile = null;
- if(m_CommandLine.WasPassed("log"))
- {
- logFile = m_CommandLine["log"];
+ m_CommandLine = new CommandLineCollection(args);
- if(logFile != null && logFile.Length == 0)
- {
- logFile = "Prebuild.log";
- }
- }
- else
- {
- target = target & ~LogTargets.File; //dont output to a file
- }
-
- m_Log = new Log(target, logFile);
- LogBanner();
+ string logFile = null;
+ if (m_CommandLine.WasPassed("log"))
+ {
+ logFile = m_CommandLine["log"];
- m_CurrentWorkingDirectory = new CurrentDirectory();
+ if (logFile != null && logFile.Length == 0)
+ {
+ logFile = "Prebuild.log";
+ }
+ }
+ else
+ {
+ target = target & ~LogTargets.File; //dont output to a file
+ }
+
+ m_Log = new Log(target, logFile);
+ LogBanner();
+
+ m_CurrentWorkingDirectory = new CurrentDirectory();
m_Target = m_CommandLine["target"];
m_Conditionals = m_CommandLine["conditionals"];
- if(m_CommandLine["targetframework"] != null)
+ if (m_CommandLine["targetframework"] != null)
{
- m_TargetFramework = (FrameworkVersion)Enum.Parse (typeof (FrameworkVersion), m_CommandLine["targetframework"]);
+ m_TargetFramework = (FrameworkVersion)Enum.Parse(typeof(FrameworkVersion), m_CommandLine["targetframework"]);
cmdlineTargetFramework = true;
}
- m_Clean = m_CommandLine["clean"];
- string removeDirs = m_CommandLine["removedir"];
- if(removeDirs != null && removeDirs.Length == 0)
- {
- m_RemoveDirectories = removeDirs.Split('|');
- }
+ m_Clean = m_CommandLine["clean"];
+ string removeDirs = m_CommandLine["removedir"];
+ if (removeDirs != null && removeDirs.Length == 0)
+ {
+ m_RemoveDirectories = removeDirs.Split('|');
+ }
- string flags = m_CommandLine["allowedgroups"];//allows filtering by specifying a pipe-delimited list of groups to include
- if(flags != null && flags.Length == 0)
- {
- m_ProjectGroups = flags.Split('|');
- }
- m_PauseAfterFinish = m_CommandLine.WasPassed("pause");
+ string flags = m_CommandLine["allowedgroups"];//allows filtering by specifying a pipe-delimited list of groups to include
+ if (flags != null && flags.Length == 0)
+ {
+ m_ProjectGroups = flags.Split('|');
+ }
+ m_PauseAfterFinish = m_CommandLine.WasPassed("pause");
- LoadSchema();
- }
+ LoadSchema();
+ }
- ///
- /// Processes this instance.
- ///
- public void Process()
- {
- bool perfomedOtherTask = false;
- if(m_RemoveDirectories != null && m_RemoveDirectories.Length > 0)
- {
- try
- {
- RemoveDirectories(".",m_RemoveDirectories);
- }
- catch(IOException e)
- {
- m_Log.Write("Failed to remove directories named {0}",m_RemoveDirectories);
- m_Log.WriteException(LogType.Error,e);
- }
- catch(UnauthorizedAccessException e)
- {
- m_Log.Write("Failed to remove directories named {0}",m_RemoveDirectories);
- m_Log.WriteException(LogType.Error,e);
- }
- perfomedOtherTask = true;
- }
+ ///
+ /// Processes this instance.
+ ///
+ public void Process()
+ {
+ bool perfomedOtherTask = false;
+ if (m_RemoveDirectories != null && m_RemoveDirectories.Length > 0)
+ {
+ try
+ {
+ RemoveDirectories(".", m_RemoveDirectories);
+ }
+ catch (IOException e)
+ {
+ m_Log.Write("Failed to remove directories named {0}", m_RemoveDirectories);
+ m_Log.WriteException(LogType.Error, e);
+ }
+ catch (UnauthorizedAccessException e)
+ {
+ m_Log.Write("Failed to remove directories named {0}", m_RemoveDirectories);
+ m_Log.WriteException(LogType.Error, e);
+ }
+ perfomedOtherTask = true;
+ }
- if(m_Target != null && m_Clean != null)
- {
- m_Log.Write(LogType.Error, "The options /target and /clean cannot be passed together");
- return;
- }
-
- if(m_Target == null && m_Clean == null)
- {
- if(perfomedOtherTask) //finished
- {
- return;
- }
- m_Log.Write(LogType.Error, "Must pass either /target or /clean to process a Prebuild file");
- return;
- }
+ if (m_Target != null && m_Clean != null)
+ {
+ m_Log.Write(LogType.Error, "The options /target and /clean cannot be passed together");
+ return;
+ }
- string file = "./prebuild.xml";
- if(m_CommandLine.WasPassed("file"))
- {
- file = m_CommandLine["file"];
- }
+ if (m_Target == null && m_Clean == null)
+ {
+ if (perfomedOtherTask) //finished
+ {
+ return;
+ }
+ m_Log.Write(LogType.Error, "Must pass either /target or /clean to process a Prebuild file");
+ return;
+ }
- ProcessFile(file);
+ string file = "./prebuild.xml";
+ if (m_CommandLine.WasPassed("file"))
+ {
+ file = m_CommandLine["file"];
+ }
- string target = (m_Target != null ? m_Target.ToLower() : m_Clean.ToLower());
- bool clean = (m_Target == null);
- if(clean && target != null && target.Length == 0)
- {
- target = "all";
- }
- if(clean && target == "all")//default to all if no target was specified for clean
- {
+ ProcessFile(file);
+
+ string target = (m_Target != null ? m_Target.ToLower() : m_Clean.ToLower());
+ bool clean = (m_Target == null);
+ if (clean && target != null && target.Length == 0)
+ {
+ target = "all";
+ }
+ if (clean && target == "all")//default to all if no target was specified for clean
+ {
//check if they passed yes
if (!m_CommandLine.WasPassed("yes"))
{
- Console.WriteLine("WARNING: This operation will clean ALL project files for all targets, are you sure? (y/n):");
- string ret = Console.ReadLine();
- if(ret == null)
- {
- return;
- }
- ret = ret.Trim().ToLower();
- if((ret.ToLower() != "y" && ret.ToLower() != "yes"))
- {
- return;
+ Console.WriteLine("WARNING: This operation will clean ALL project files for all targets, are you sure? (y/n):");
+ string ret = Console.ReadLine();
+ if (ret == null)
+ {
+ return;
+ }
+ ret = ret.Trim().ToLower();
+ if ((ret.ToLower() != "y" && ret.ToLower() != "yes"))
+ {
+ return;
}
}
- //clean all targets (just cleaning vs2002 target didn't clean nant)
- foreach(ITarget targ in m_Targets.Values)
- {
- targ.Clean(this);
- }
- }
- else
- {
- if (!m_Targets.ContainsKey(target)) {
- m_Log.Write(LogType.Error, "Unknown Target \"{0}\"", target);
- return;
- }
- ITarget targ = m_Targets[target];
+ //clean all targets (just cleaning vs2002 target didn't clean nant)
+ foreach (ITarget targ in m_Targets.Values)
+ {
+ targ.Clean(this);
+ }
+ }
+ else
+ {
+ if (!m_Targets.ContainsKey(target))
+ {
+ m_Log.Write(LogType.Error, "Unknown Target \"{0}\"", target);
+ return;
+ }
+ ITarget targ = m_Targets[target];
- if(clean)
- {
- targ.Clean(this);
- }
- else
- {
- targ.Write(this);
- }
- }
+ if (clean)
+ {
+ targ.Clean(this);
+ }
+ else
+ {
+ targ.Write(this);
+ }
+ }
- m_Log.Flush();
- }
+ m_Log.Flush();
+ }
- #endregion
+ #endregion
- #region IDisposable Members
+ #region IDisposable Members
- ///
- ///
- ///
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
+ ///
+ ///
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
- ///
- /// Dispose objects
- ///
- ///
- /// If true, it will dispose close the handle
- ///
- ///
- /// Will dispose managed and unmanaged resources.
- ///
- protected virtual void Dispose(bool disposing)
- {
- if (!disposed)
- {
- if (disposing)
- {
+ ///
+ /// Dispose objects
+ ///
+ ///
+ /// If true, it will dispose close the handle
+ ///
+ ///
+ /// Will dispose managed and unmanaged resources.
+ ///
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposed)
+ {
+ if (disposing)
+ {
GC.SuppressFinalize(this);
- if (m_Log != null)
- {
- m_Log.Close();
- m_Log = null;
- }
- }
- }
- disposed = true;
- }
+ if (m_Log != null)
+ {
+ m_Log.Close();
+ m_Log = null;
+ }
+ }
+ }
+ disposed = true;
+ }
- ///
- ///
- ///
- ~Kernel()
- {
- Dispose(false);
- }
-
- ///
- /// Closes and destroys this object
- ///
- ///
- /// Same as Dispose(true)
- ///
- public void Close()
- {
- Dispose();
- }
+ ///
+ ///
+ ///
+ ~Kernel()
+ {
+ Dispose(false);
+ }
- #endregion
- }
+ ///
+ /// Closes and destroys this object
+ ///
+ ///
+ /// Same as Dispose(true)
+ ///
+ public void Close()
+ {
+ Dispose();
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/AuthorNode.cs b/Prebuild/src/Core/Nodes/AuthorNode.cs
index 4c415bb6b1..1592a7d035 100644
--- a/Prebuild/src/Core/Nodes/AuthorNode.cs
+++ b/Prebuild/src/Core/Nodes/AuthorNode.cs
@@ -32,56 +32,56 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Author")]
- public class AuthorNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Author")]
+ public class AuthorNode : DataNode
+ {
+ #region Fields
- private string m_Signature;
+ private string m_Signature;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the signature.
- ///
- /// The signature.
- public string Signature
- {
- get
- {
- return m_Signature;
- }
- }
+ ///
+ /// Gets the signature.
+ ///
+ /// The signature.
+ public string Signature
+ {
+ get
+ {
+ return m_Signature;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
- m_Signature = Helper.InterpolateForEnvironmentVariables(node.InnerText);
- if(m_Signature == null)
- {
- m_Signature = "";
- }
+ m_Signature = Helper.InterpolateForEnvironmentVariables(node.InnerText);
+ if (m_Signature == null)
+ {
+ m_Signature = "";
+ }
- m_Signature = m_Signature.Trim();
- }
+ m_Signature = m_Signature.Trim();
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/CleanupNode.cs b/Prebuild/src/Core/Nodes/CleanupNode.cs
index b8131b0ebb..ea9c881472 100644
--- a/Prebuild/src/Core/Nodes/CleanupNode.cs
+++ b/Prebuild/src/Core/Nodes/CleanupNode.cs
@@ -35,40 +35,40 @@ namespace Prebuild.Core.Nodes
[DataNode("Cleanup")]
public class CleanupNode : DataNode
{
- #region Fields
+ #region Fields
- private List m_CleanFiles = new List();
+ private List m_CleanFiles = new List();
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the signature.
- ///
- /// The signature.
+ ///
+ /// Gets the signature.
+ ///
+ /// The signature.
public List CleanFiles
- {
- get
- {
- return m_CleanFiles;
- }
- }
+ {
+ get
+ {
+ return m_CleanFiles;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
foreach (XmlNode child in node.ChildNodes)
{
@@ -78,8 +78,8 @@ namespace Prebuild.Core.Nodes
m_CleanFiles.Add((CleanFilesNode)dataNode);
}
}
- }
+ }
- #endregion
+ #endregion
}
}
\ No newline at end of file
diff --git a/Prebuild/src/Core/Nodes/ConfigurationNode.cs b/Prebuild/src/Core/Nodes/ConfigurationNode.cs
index cd2f740ae7..11abdd88bb 100644
--- a/Prebuild/src/Core/Nodes/ConfigurationNode.cs
+++ b/Prebuild/src/Core/Nodes/ConfigurationNode.cs
@@ -32,194 +32,194 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Configuration")]
- public class ConfigurationNode : DataNode, ICloneable, IComparable
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Configuration")]
+ public class ConfigurationNode : DataNode, ICloneable, IComparable
+ {
+ #region Fields
- private string m_Name = "unknown";
- private string m_Platform = "AnyCPU";
- private OptionsNode m_Options;
+ private string m_Name = "unknown";
+ private string m_Platform = "AnyCPU";
+ private OptionsNode m_Options;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public ConfigurationNode()
- {
- m_Options = new OptionsNode();
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ConfigurationNode()
+ {
+ m_Options = new OptionsNode();
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets or sets the parent.
- ///
- /// The parent.
- public override IDataNode Parent
- {
- get
- {
- return base.Parent;
- }
- set
- {
- base.Parent = value;
- if(base.Parent is SolutionNode)
- {
- SolutionNode node = (SolutionNode)base.Parent;
- if(node != null && node.Options != null)
- {
- node.Options.CopyTo(m_Options);
- }
- }
- }
- }
+ ///
+ /// Gets or sets the parent.
+ ///
+ /// The parent.
+ public override IDataNode Parent
+ {
+ get
+ {
+ return base.Parent;
+ }
+ set
+ {
+ base.Parent = value;
+ if (base.Parent is SolutionNode)
+ {
+ SolutionNode node = (SolutionNode)base.Parent;
+ if (node != null && node.Options != null)
+ {
+ node.Options.CopyTo(m_Options);
+ }
+ }
+ }
+ }
- ///
- /// Identifies the platform for this specific configuration.
- ///
- public string Platform
- {
- get
- {
- return m_Platform;
- }
- set
- {
- switch ((value + "").ToLower())
- {
- case "x86":
- case "x64":
- m_Platform = value;
- break;
- case "itanium":
- m_Platform = "Itanium";
- break;
- default:
- m_Platform = "AnyCPU";
- break;
- }
- }
- }
+ ///
+ /// Identifies the platform for this specific configuration.
+ ///
+ public string Platform
+ {
+ get
+ {
+ return m_Platform;
+ }
+ set
+ {
+ switch ((value + "").ToLower())
+ {
+ case "x86":
+ case "x64":
+ m_Platform = value;
+ break;
+ case "itanium":
+ m_Platform = "Itanium";
+ break;
+ default:
+ m_Platform = "AnyCPU";
+ break;
+ }
+ }
+ }
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- ///
- /// Gets the name and platform for the configuration.
- ///
- /// The name and platform.
- public string NameAndPlatform
- {
- get
- {
+ ///
+ /// Gets the name and platform for the configuration.
+ ///
+ /// The name and platform.
+ public string NameAndPlatform
+ {
+ get
+ {
string platform = m_Platform;
if (platform == "AnyCPU")
platform = "Any CPU";
- return String.Format("{0}|{1}", m_Name, platform);
- }
- }
+ return String.Format("{0}|{1}", m_Name, platform);
+ }
+ }
- ///
- /// Gets or sets the options.
- ///
- /// The options.
- public OptionsNode Options
- {
- get
- {
- return m_Options;
- }
- set
- {
- m_Options = value;
- }
- }
+ ///
+ /// Gets or sets the options.
+ ///
+ /// The options.
+ public OptionsNode Options
+ {
+ get
+ {
+ return m_Options;
+ }
+ set
+ {
+ m_Options = value;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- Platform = Helper.AttributeValue(node, "platform", m_Platform);
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ Platform = Helper.AttributeValue(node, "platform", m_Platform);
- if (node == null)
- {
- throw new ArgumentNullException("node");
- }
- foreach(XmlNode child in node.ChildNodes)
- {
- IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
- if(dataNode is OptionsNode)
- {
- ((OptionsNode)dataNode).CopyTo(m_Options);
- }
- }
- }
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
+ if (dataNode is OptionsNode)
+ {
+ ((OptionsNode)dataNode).CopyTo(m_Options);
+ }
+ }
+ }
- ///
- /// Copies to.
- ///
- /// The conf.
- public void CopyTo(ConfigurationNode conf)
- {
- m_Options.CopyTo(conf.m_Options);
- }
+ ///
+ /// Copies to.
+ ///
+ /// The conf.
+ public void CopyTo(ConfigurationNode conf)
+ {
+ m_Options.CopyTo(conf.m_Options);
+ }
- #endregion
+ #endregion
- #region ICloneable Members
+ #region ICloneable Members
- ///
- /// Creates a new object that is a copy of the current instance.
- ///
- ///
- /// A new object that is a copy of this instance.
- ///
- public object Clone()
- {
- ConfigurationNode ret = new ConfigurationNode();
- ret.m_Name = m_Name;
- ret.m_Platform = m_Platform;
- m_Options.CopyTo(ret.m_Options);
- return ret;
- }
+ ///
+ /// Creates a new object that is a copy of the current instance.
+ ///
+ ///
+ /// A new object that is a copy of this instance.
+ ///
+ public object Clone()
+ {
+ ConfigurationNode ret = new ConfigurationNode();
+ ret.m_Name = m_Name;
+ ret.m_Platform = m_Platform;
+ m_Options.CopyTo(ret.m_Options);
+ return ret;
+ }
- #endregion
+ #endregion
#region IComparable Members
public int CompareTo(object obj)
{
- ConfigurationNode that = (ConfigurationNode) obj;
+ ConfigurationNode that = (ConfigurationNode)obj;
return this.m_Name.CompareTo(that.m_Name);
}
#endregion
- }
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ConfigurationNodeCollection.cs b/Prebuild/src/Core/Nodes/ConfigurationNodeCollection.cs
index 1c38d9e443..e93b7e3a49 100644
--- a/Prebuild/src/Core/Nodes/ConfigurationNodeCollection.cs
+++ b/Prebuild/src/Core/Nodes/ConfigurationNodeCollection.cs
@@ -27,45 +27,45 @@ using System.Collections.Generic;
namespace Prebuild.Core.Nodes
{
- ///
- /// Implements a specialized list of configuration nodes which allows for lookup via
- /// configuration name and platform.
- ///
- public class ConfigurationNodeCollection : List
- {
- #region Properties
+ ///
+ /// Implements a specialized list of configuration nodes which allows for lookup via
+ /// configuration name and platform.
+ ///
+ public class ConfigurationNodeCollection : List
+ {
+ #region Properties
- public ConfigurationNode this[string nameAndPlatform]
- {
- get
- {
- foreach (ConfigurationNode configurationNode in this)
- {
- if (configurationNode.NameAndPlatform == nameAndPlatform)
- {
- return configurationNode;
- }
- }
+ public ConfigurationNode this[string nameAndPlatform]
+ {
+ get
+ {
+ foreach (ConfigurationNode configurationNode in this)
+ {
+ if (configurationNode.NameAndPlatform == nameAndPlatform)
+ {
+ return configurationNode;
+ }
+ }
- return null;
- }
+ return null;
+ }
- set
- {
- // See if the node
- ConfigurationNode configurationNode = this[nameAndPlatform];
+ set
+ {
+ // See if the node
+ ConfigurationNode configurationNode = this[nameAndPlatform];
- if (configurationNode != null)
- {
- this[IndexOf(configurationNode)] = value;
- }
- else
- {
- Add(value);
- }
- }
- }
+ if (configurationNode != null)
+ {
+ this[IndexOf(configurationNode)] = value;
+ }
+ else
+ {
+ Add(value);
+ }
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/DataNode.cs b/Prebuild/src/Core/Nodes/DataNode.cs
index 318b13ccb9..3fbe8daf49 100644
--- a/Prebuild/src/Core/Nodes/DataNode.cs
+++ b/Prebuild/src/Core/Nodes/DataNode.cs
@@ -32,86 +32,86 @@ using System.IO;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- public abstract class DataNode : IDataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ public abstract class DataNode : IDataNode
+ {
+ #region Fields
- private IDataNode parent;
- string[] m_WebTypes = new string[] { "aspx", "ascx", "master", "ashx", "asmx" };
+ private IDataNode parent;
+ string[] m_WebTypes = new string[] { "aspx", "ascx", "master", "ashx", "asmx" };
- #endregion
+ #endregion
- #region IDataNode Members
+ #region IDataNode Members
- ///
- /// Gets or sets the parent.
- ///
- /// The parent.
- public virtual IDataNode Parent
- {
- get
- {
- return parent;
- }
- set
- {
- parent = value;
- }
- }
- public string[] WebTypes
- {
- get { return m_WebTypes; }
- }
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public virtual void Parse(XmlNode node)
- {
- }
- public BuildAction GetBuildActionByFileName(string fileName)
- {
- string extension = Path.GetExtension(fileName).ToLower();
- foreach (string type in WebTypes)
- {
- if (extension == type)
- return BuildAction.Content;
- }
- return BuildAction.Compile;
- }
- ///
- /// Parses the file type to figure out what type it is
- ///
- ///
- public SubType GetSubTypeByFileName(string fileName)
- {
- string extension = System.IO.Path.GetExtension(fileName).ToLower();
- string designer = String.Format(".designer{0}", extension);
- string path = fileName.ToLower();
- if (extension == ".resx")
- {
- return SubType.Designer;
- }
- else if (path.EndsWith(".settings"))
- {
- return SubType.Settings;
- }
- else
- {
-
- foreach (string type in WebTypes)
- {
+ ///
+ /// Gets or sets the parent.
+ ///
+ /// The parent.
+ public virtual IDataNode Parent
+ {
+ get
+ {
+ return parent;
+ }
+ set
+ {
+ parent = value;
+ }
+ }
+ public string[] WebTypes
+ {
+ get { return m_WebTypes; }
+ }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public virtual void Parse(XmlNode node)
+ {
+ }
+ public BuildAction GetBuildActionByFileName(string fileName)
+ {
+ string extension = Path.GetExtension(fileName).ToLower();
+ foreach (string type in WebTypes)
+ {
+ if (extension == type)
+ return BuildAction.Content;
+ }
+ return BuildAction.Compile;
+ }
+ ///
+ /// Parses the file type to figure out what type it is
+ ///
+ ///
+ public SubType GetSubTypeByFileName(string fileName)
+ {
+ string extension = System.IO.Path.GetExtension(fileName).ToLower();
+ string designer = String.Format(".designer{0}", extension);
+ string path = fileName.ToLower();
+ if (extension == ".resx")
+ {
+ return SubType.Designer;
+ }
+ else if (path.EndsWith(".settings"))
+ {
+ return SubType.Settings;
+ }
+ else
+ {
+
+ foreach (string type in WebTypes)
+ {
if (path.EndsWith(type))
- {
- return SubType.CodeBehind;
- }
- }
- }
- return SubType.Code;
- }
- #endregion
- }
+ {
+ return SubType.CodeBehind;
+ }
+ }
+ }
+ return SubType.Code;
+ }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/DatabaseReferenceNode.cs b/Prebuild/src/Core/Nodes/DatabaseReferenceNode.cs
index 845db24b12..974b74e67b 100644
--- a/Prebuild/src/Core/Nodes/DatabaseReferenceNode.cs
+++ b/Prebuild/src/Core/Nodes/DatabaseReferenceNode.cs
@@ -43,18 +43,18 @@ namespace Prebuild.Core.Nodes
providerId = new Guid("7F041D59-D76A-44ed-9AA2-FBF6B0548B80"); break;
case "System.Data.OracleClient":
providerId = new Guid("8F5C5018-AE09-42cf-B2CC-2CCCC7CFC2BB"); break;
- case "System.Data.SqlClient":
+ case "System.Data.SqlClient":
providerId = new Guid("91510608-8809-4020-8897-FBA057E22D54"); break;
case "System.Data.Odbc":
providerId = new Guid("C3D4F4CE-2C48-4381-B4D6-34FA50C51C86"); break;
-
+
default:
throw new ArgumentOutOfRangeException("providerName", providerName, "Could not provider name to an id.");
}
}
else
providerId = new Guid(Helper.AttributeValue(node, "providerId", Guid.Empty.ToString("B")));
-
+
connectionString = Helper.AttributeValue(node, "connectionString", connectionString);
base.Parse(node);
diff --git a/Prebuild/src/Core/Nodes/ExcludeNode.cs b/Prebuild/src/Core/Nodes/ExcludeNode.cs
index 7f04cba72f..0b3693928d 100644
--- a/Prebuild/src/Core/Nodes/ExcludeNode.cs
+++ b/Prebuild/src/Core/Nodes/ExcludeNode.cs
@@ -32,31 +32,31 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Exclude")]
- public class ExcludeNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Exclude")]
+ public class ExcludeNode : DataNode
+ {
+ #region Fields
private string m_Pattern = "";
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Pattern;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Pattern;
+ }
+ }
///
/// Gets the pattern.
@@ -72,18 +72,18 @@ namespace Prebuild.Core.Nodes
#endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Pattern = Helper.AttributeValue( node, "name", m_Pattern );
- m_Pattern = Helper.AttributeValue(node, "pattern", m_Pattern );
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Pattern = Helper.AttributeValue(node, "name", m_Pattern);
+ m_Pattern = Helper.AttributeValue(node, "pattern", m_Pattern);
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/FileNode.cs b/Prebuild/src/Core/Nodes/FileNode.cs
index b313ffac75..e0fbb31f27 100644
--- a/Prebuild/src/Core/Nodes/FileNode.cs
+++ b/Prebuild/src/Core/Nodes/FileNode.cs
@@ -34,190 +34,190 @@ using Prebuild.Core.Targets;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- public enum BuildAction
- {
- ///
- ///
- ///
- None,
- ///
- ///
- ///
- Compile,
- ///
- ///
- ///
- Content,
- ///
- ///
- ///
- EmbeddedResource,
- ///
- ///
- ///
- ApplicationDefinition,
- ///
- ///
- ///
- Page,
+ ///
+ ///
+ ///
+ public enum BuildAction
+ {
+ ///
+ ///
+ ///
+ None,
+ ///
+ ///
+ ///
+ Compile,
+ ///
+ ///
+ ///
+ Content,
+ ///
+ ///
+ ///
+ EmbeddedResource,
+ ///
+ ///
+ ///
+ ApplicationDefinition,
+ ///
+ ///
+ ///
+ Page,
///
///
///
Copy
- }
+ }
- ///
- ///
- ///
- public enum SubType
- {
- ///
- ///
- ///
- Code,
- ///
- ///
- ///
- Component,
+ ///
+ ///
+ ///
+ public enum SubType
+ {
+ ///
+ ///
+ ///
+ Code,
+ ///
+ ///
+ ///
+ Component,
///
///
///
Designer,
- ///
- ///
- ///
- Form,
- ///
- ///
- ///
- Settings,
- ///
- ///
- ///
- UserControl,
- ///
- ///
- ///
- CodeBehind,
- }
+ ///
+ ///
+ ///
+ Form,
+ ///
+ ///
+ ///
+ Settings,
+ ///
+ ///
+ ///
+ UserControl,
+ ///
+ ///
+ ///
+ CodeBehind,
+ }
- public enum CopyToOutput
- {
- Never,
- Always,
- PreserveNewest
- }
+ public enum CopyToOutput
+ {
+ Never,
+ Always,
+ PreserveNewest
+ }
- ///
- ///
- ///
- [DataNode("File")]
- public class FileNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("File")]
+ public class FileNode : DataNode
+ {
+ #region Fields
- private string m_Path;
- private string m_ResourceName = "";
- private BuildAction? m_BuildAction;
- private bool m_Valid;
- private SubType? m_SubType;
- private CopyToOutput m_CopyToOutput = CopyToOutput.Never;
- private bool m_Link = false;
- private string m_LinkPath = string.Empty;
+ private string m_Path;
+ private string m_ResourceName = "";
+ private BuildAction? m_BuildAction;
+ private bool m_Valid;
+ private SubType? m_SubType;
+ private CopyToOutput m_CopyToOutput = CopyToOutput.Never;
+ private bool m_Link = false;
+ private string m_LinkPath = string.Empty;
private bool m_PreservePath = false;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- ///
- ///
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ ///
+ ///
+ ///
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- ///
- ///
- ///
- public string ResourceName
- {
- get
- {
- return m_ResourceName;
- }
- }
+ ///
+ ///
+ ///
+ public string ResourceName
+ {
+ get
+ {
+ return m_ResourceName;
+ }
+ }
- ///
- ///
- ///
- public BuildAction BuildAction
- {
- get
- {
- if (m_BuildAction != null)
- return m_BuildAction.Value;
- else
- return GetBuildActionByFileName(this.Path);
+ ///
+ ///
+ ///
+ public BuildAction BuildAction
+ {
+ get
+ {
+ if (m_BuildAction != null)
+ return m_BuildAction.Value;
+ else
+ return GetBuildActionByFileName(this.Path);
- }
- }
+ }
+ }
- public CopyToOutput CopyToOutput
- {
- get
- {
- return this.m_CopyToOutput;
- }
- }
+ public CopyToOutput CopyToOutput
+ {
+ get
+ {
+ return this.m_CopyToOutput;
+ }
+ }
- public bool IsLink
- {
- get
- {
- return this.m_Link;
- }
- }
+ public bool IsLink
+ {
+ get
+ {
+ return this.m_Link;
+ }
+ }
- public string LinkPath
- {
- get
- {
- return this.m_LinkPath;
- }
- }
- ///
- ///
- ///
- public SubType SubType
- {
- get
- {
- if (m_SubType != null)
- return m_SubType.Value;
- else
- return GetSubTypeByFileName(this.Path);
- }
- }
+ public string LinkPath
+ {
+ get
+ {
+ return this.m_LinkPath;
+ }
+ }
+ ///
+ ///
+ ///
+ public SubType SubType
+ {
+ get
+ {
+ if (m_SubType != null)
+ return m_SubType.Value;
+ else
+ return GetSubTypeByFileName(this.Path);
+ }
+ }
- ///
- ///
- ///
- public bool IsValid
- {
- get
- {
- return m_Valid;
- }
- }
+ ///
+ ///
+ ///
+ public bool IsValid
+ {
+ get
+ {
+ return m_Valid;
+ }
+ }
///
///
@@ -232,61 +232,61 @@ namespace Prebuild.Core.Nodes
}
}
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- ///
- ///
- ///
- public override void Parse(XmlNode node)
- {
- string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty);
- if (buildAction != string.Empty)
- m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction);
- string subType = Helper.AttributeValue(node, "subType", string.Empty);
- if (subType != String.Empty)
- m_SubType = (SubType)Enum.Parse(typeof(SubType), subType);
+ ///
+ ///
+ ///
+ ///
+ public override void Parse(XmlNode node)
+ {
+ string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty);
+ if (buildAction != string.Empty)
+ m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction);
+ string subType = Helper.AttributeValue(node, "subType", string.Empty);
+ if (subType != String.Empty)
+ m_SubType = (SubType)Enum.Parse(typeof(SubType), subType);
Console.WriteLine("[FileNode]:BuildAction is {0}", buildAction);
- m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName.ToString());
- this.m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString));
- if ( this.m_Link == true )
- {
- this.m_LinkPath = Helper.AttributeValue( node, "linkPath", string.Empty );
- }
- this.m_CopyToOutput = (CopyToOutput) Enum.Parse(typeof(CopyToOutput), Helper.AttributeValue(node, "copyToOutput", this.m_CopyToOutput.ToString()));
- this.m_PreservePath = bool.Parse( Helper.AttributeValue( node, "preservePath", bool.FalseString ) );
+ m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName.ToString());
+ this.m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString));
+ if (this.m_Link == true)
+ {
+ this.m_LinkPath = Helper.AttributeValue(node, "linkPath", string.Empty);
+ }
+ this.m_CopyToOutput = (CopyToOutput)Enum.Parse(typeof(CopyToOutput), Helper.AttributeValue(node, "copyToOutput", this.m_CopyToOutput.ToString()));
+ this.m_PreservePath = bool.Parse(Helper.AttributeValue(node, "preservePath", bool.FalseString));
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
- m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
- if(m_Path == null)
- {
- m_Path = "";
- }
+ m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
+ if (m_Path == null)
+ {
+ m_Path = "";
+ }
- m_Path = m_Path.Trim();
- m_Valid = true;
- if(!File.Exists(m_Path))
- {
- m_Valid = false;
- Kernel.Instance.Log.Write(LogType.Warning, "File does not exist: {0}", m_Path);
- }
+ m_Path = m_Path.Trim();
+ m_Valid = true;
+ if (!File.Exists(m_Path))
+ {
+ m_Valid = false;
+ Kernel.Instance.Log.Write(LogType.Warning, "File does not exist: {0}", m_Path);
+ }
if (System.IO.Path.GetExtension(m_Path) == ".settings")
{
m_SubType = SubType.Settings;
m_BuildAction = BuildAction.None;
}
- }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/FilesNode.cs b/Prebuild/src/Core/Nodes/FilesNode.cs
index 16658f38f2..48643347f6 100644
--- a/Prebuild/src/Core/Nodes/FilesNode.cs
+++ b/Prebuild/src/Core/Nodes/FilesNode.cs
@@ -34,36 +34,36 @@ using System.IO;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Files")]
- public class FilesNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Files")]
+ public class FilesNode : DataNode
+ {
+ #region Fields
- private readonly List m_Files = new List();
- private readonly Dictionary m_BuildActions = new Dictionary();
- private readonly Dictionary m_SubTypes = new Dictionary();
- private readonly Dictionary m_ResourceNames = new Dictionary();
- private readonly Dictionary m_CopyToOutputs = new Dictionary();
- private readonly Dictionary m_Links = new Dictionary();
- private readonly Dictionary m_LinkPaths = new Dictionary();
+ private readonly List m_Files = new List();
+ private readonly Dictionary m_BuildActions = new Dictionary();
+ private readonly Dictionary m_SubTypes = new Dictionary();
+ private readonly Dictionary m_ResourceNames = new Dictionary();
+ private readonly Dictionary m_CopyToOutputs = new Dictionary();
+ private readonly Dictionary m_Links = new Dictionary();
+ private readonly Dictionary m_LinkPaths = new Dictionary();
private readonly Dictionary m_PreservePaths = new Dictionary();
private readonly Dictionary m_DestinationPath = new Dictionary();
private readonly NameValueCollection m_CopyFiles = new NameValueCollection();
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- public int Count
- {
- get
- {
- return m_Files.Count;
- }
- }
+ public int Count
+ {
+ get
+ {
+ return m_Files.Count;
+ }
+ }
public string[] Destinations
{
@@ -75,23 +75,23 @@ namespace Prebuild.Core.Nodes
get { return m_CopyFiles.Count; }
}
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- public BuildAction GetBuildAction(string file)
- {
- if(!m_BuildActions.ContainsKey(file))
- {
- return BuildAction.Compile;
- }
+ public BuildAction GetBuildAction(string file)
+ {
+ if (!m_BuildActions.ContainsKey(file))
+ {
+ return BuildAction.Compile;
+ }
- return m_BuildActions[file];
- }
+ return m_BuildActions[file];
+ }
public string GetDestinationPath(string file)
{
- if( !m_DestinationPath.ContainsKey(file))
+ if (!m_DestinationPath.ContainsKey(file))
{
return null;
}
@@ -103,107 +103,107 @@ namespace Prebuild.Core.Nodes
return m_CopyFiles.GetValues(dest);
}
- public CopyToOutput GetCopyToOutput(string file)
- {
- if (!m_CopyToOutputs.ContainsKey(file))
- {
- return CopyToOutput.Never;
- }
- return m_CopyToOutputs[file];
- }
+ public CopyToOutput GetCopyToOutput(string file)
+ {
+ if (!m_CopyToOutputs.ContainsKey(file))
+ {
+ return CopyToOutput.Never;
+ }
+ return m_CopyToOutputs[file];
+ }
- public bool GetIsLink(string file)
- {
- if (!m_Links.ContainsKey(file))
- {
- return false;
- }
- return m_Links[file];
- }
+ public bool GetIsLink(string file)
+ {
+ if (!m_Links.ContainsKey(file))
+ {
+ return false;
+ }
+ return m_Links[file];
+ }
public bool Contains(string file)
{
return m_Files.Contains(file);
}
- public string GetLinkPath( string file )
- {
- if ( !m_LinkPaths.ContainsKey( file ) )
- {
- return string.Empty;
- }
- return m_LinkPaths[ file ];
- }
-
- public SubType GetSubType(string file)
- {
- if(!m_SubTypes.ContainsKey(file))
- {
- return SubType.Code;
- }
-
- return m_SubTypes[file];
- }
-
- public string GetResourceName(string file)
- {
- if(!m_ResourceNames.ContainsKey(file))
- {
- return string.Empty;
- }
-
- return m_ResourceNames[file];
- }
-
- public bool GetPreservePath( string file )
+ public string GetLinkPath(string file)
{
- if ( !m_PreservePaths.ContainsKey( file ) )
+ if (!m_LinkPaths.ContainsKey(file))
+ {
+ return string.Empty;
+ }
+ return m_LinkPaths[file];
+ }
+
+ public SubType GetSubType(string file)
+ {
+ if (!m_SubTypes.ContainsKey(file))
+ {
+ return SubType.Code;
+ }
+
+ return m_SubTypes[file];
+ }
+
+ public string GetResourceName(string file)
+ {
+ if (!m_ResourceNames.ContainsKey(file))
+ {
+ return string.Empty;
+ }
+
+ return m_ResourceNames[file];
+ }
+
+ public bool GetPreservePath(string file)
+ {
+ if (!m_PreservePaths.ContainsKey(file))
{
return false;
}
- return m_PreservePaths[ file ];
+ return m_PreservePaths[file];
}
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- foreach(XmlNode child in node.ChildNodes)
- {
- IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
- if(dataNode is FileNode)
- {
- FileNode fileNode = (FileNode)dataNode;
- if(fileNode.IsValid)
- {
- if (!m_Files.Contains(fileNode.Path))
- {
- m_Files.Add(fileNode.Path);
- m_BuildActions[fileNode.Path] = fileNode.BuildAction;
- m_SubTypes[fileNode.Path] = fileNode.SubType;
- m_ResourceNames[fileNode.Path] = fileNode.ResourceName;
- m_PreservePaths[ fileNode.Path ] = fileNode.PreservePath;
- m_Links[ fileNode.Path ] = fileNode.IsLink;
- m_LinkPaths[ fileNode.Path ] = fileNode.LinkPath;
- m_CopyToOutputs[ fileNode.Path ] = fileNode.CopyToOutput;
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
+ if (dataNode is FileNode)
+ {
+ FileNode fileNode = (FileNode)dataNode;
+ if (fileNode.IsValid)
+ {
+ if (!m_Files.Contains(fileNode.Path))
+ {
+ m_Files.Add(fileNode.Path);
+ m_BuildActions[fileNode.Path] = fileNode.BuildAction;
+ m_SubTypes[fileNode.Path] = fileNode.SubType;
+ m_ResourceNames[fileNode.Path] = fileNode.ResourceName;
+ m_PreservePaths[fileNode.Path] = fileNode.PreservePath;
+ m_Links[fileNode.Path] = fileNode.IsLink;
+ m_LinkPaths[fileNode.Path] = fileNode.LinkPath;
+ m_CopyToOutputs[fileNode.Path] = fileNode.CopyToOutput;
- }
- }
- }
- else if(dataNode is MatchNode)
- {
- foreach(string file in ((MatchNode)dataNode).Files)
- {
+ }
+ }
+ }
+ else if (dataNode is MatchNode)
+ {
+ foreach (string file in ((MatchNode)dataNode).Files)
+ {
MatchNode matchNode = (MatchNode)dataNode;
- if (!m_Files.Contains(file))
- {
- m_Files.Add(file);
- if (matchNode.BuildAction == null)
+ if (!m_Files.Contains(file))
+ {
+ m_Files.Add(file);
+ if (matchNode.BuildAction == null)
m_BuildActions[file] = GetBuildActionByFileName(file);
- else
+ else
m_BuildActions[file] = matchNode.BuildAction.Value;
if (matchNode.BuildAction == BuildAction.Copy)
@@ -212,27 +212,27 @@ namespace Prebuild.Core.Nodes
m_DestinationPath[file] = matchNode.DestinationPath;
}
- m_SubTypes[file] = matchNode.SubType == null ? GetSubTypeByFileName(file) : matchNode.SubType.Value;
- m_ResourceNames[ file ] = matchNode.ResourceName;
- m_PreservePaths[ file ] = matchNode.PreservePath;
- m_Links[ file ] = matchNode.IsLink;
- m_LinkPaths[ file ] = matchNode.LinkPath;
- m_CopyToOutputs[ file ] = matchNode.CopyToOutput;
+ m_SubTypes[file] = matchNode.SubType == null ? GetSubTypeByFileName(file) : matchNode.SubType.Value;
+ m_ResourceNames[file] = matchNode.ResourceName;
+ m_PreservePaths[file] = matchNode.PreservePath;
+ m_Links[file] = matchNode.IsLink;
+ m_LinkPaths[file] = matchNode.LinkPath;
+ m_CopyToOutputs[file] = matchNode.CopyToOutput;
- }
- }
- }
- }
- }
+ }
+ }
+ }
+ }
+ }
- // TODO: Check in to why StringCollection's enumerator doesn't implement
- // IEnumerator?
- public IEnumerator GetEnumerator()
- {
- return m_Files.GetEnumerator();
- }
+ // TODO: Check in to why StringCollection's enumerator doesn't implement
+ // IEnumerator?
+ public IEnumerator GetEnumerator()
+ {
+ return m_Files.GetEnumerator();
+ }
- #endregion
+ #endregion
}
}
diff --git a/Prebuild/src/Core/Nodes/MatchNode.cs b/Prebuild/src/Core/Nodes/MatchNode.cs
index 000bde93c4..cc66767260 100644
--- a/Prebuild/src/Core/Nodes/MatchNode.cs
+++ b/Prebuild/src/Core/Nodes/MatchNode.cs
@@ -35,51 +35,51 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Match")]
- public class MatchNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Match")]
+ public class MatchNode : DataNode
+ {
+ #region Fields
private readonly List m_Files = new List();
- private Regex m_Regex;
- private BuildAction? m_BuildAction;
- private SubType? m_SubType;
- string m_ResourceName = "";
- private CopyToOutput m_CopyToOutput;
- private bool m_Link;
- private string m_LinkPath;
+ private Regex m_Regex;
+ private BuildAction? m_BuildAction;
+ private SubType? m_SubType;
+ string m_ResourceName = "";
+ private CopyToOutput m_CopyToOutput;
+ private bool m_Link;
+ private string m_LinkPath;
private bool m_PreservePath;
private string m_Destination = "";
private readonly List m_Exclusions = new List();
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- ///
- ///
- public IEnumerable Files
- {
- get
- {
- return m_Files;
- }
- }
+ ///
+ ///
+ ///
+ public IEnumerable Files
+ {
+ get
+ {
+ return m_Files;
+ }
+ }
- ///
- ///
- ///
- public BuildAction? BuildAction
- {
- get
- {
- return m_BuildAction;
- }
- }
+ ///
+ ///
+ ///
+ public BuildAction? BuildAction
+ {
+ get
+ {
+ return m_BuildAction;
+ }
+ }
public string DestinationPath
{
@@ -88,50 +88,50 @@ namespace Prebuild.Core.Nodes
return m_Destination;
}
}
- ///
- ///
- ///
- public SubType? SubType
- {
- get
- {
- return m_SubType;
- }
- }
+ ///
+ ///
+ ///
+ public SubType? SubType
+ {
+ get
+ {
+ return m_SubType;
+ }
+ }
- public CopyToOutput CopyToOutput
- {
- get
- {
- return m_CopyToOutput;
- }
- }
+ public CopyToOutput CopyToOutput
+ {
+ get
+ {
+ return m_CopyToOutput;
+ }
+ }
- public bool IsLink
- {
- get
- {
- return m_Link;
- }
- }
+ public bool IsLink
+ {
+ get
+ {
+ return m_Link;
+ }
+ }
- public string LinkPath
- {
- get
- {
- return m_LinkPath;
- }
- }
- ///
- ///
- ///
- public string ResourceName
- {
- get
- {
- return m_ResourceName;
- }
- }
+ public string LinkPath
+ {
+ get
+ {
+ return m_LinkPath;
+ }
+ }
+ ///
+ ///
+ ///
+ public string ResourceName
+ {
+ get
+ {
+ return m_ResourceName;
+ }
+ }
public bool PreservePath
{
@@ -141,27 +141,27 @@ namespace Prebuild.Core.Nodes
}
}
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- ///
- /// Recurses the directories.
- ///
- /// The path.
- /// The pattern.
- /// if set to true [recurse].
- /// if set to true [use regex].
- private void RecurseDirectories(string path, string pattern, bool recurse, bool useRegex, List exclusions)
- {
- Match match;
- try
- {
- string[] files;
+ ///
+ /// Recurses the directories.
+ ///
+ /// The path.
+ /// The pattern.
+ /// if set to true [recurse].
+ /// if set to true [use regex].
+ private void RecurseDirectories(string path, string pattern, bool recurse, bool useRegex, List exclusions)
+ {
+ Match match;
+ try
+ {
+ string[] files;
- Boolean excludeFile;
- if(!useRegex)
- {
+ Boolean excludeFile;
+ if (!useRegex)
+ {
try
{
files = Directory.GetFiles(path, pattern);
@@ -177,46 +177,46 @@ namespace Prebuild.Core.Nodes
files = null;
}
- if(files != null)
- {
- foreach (string file in files)
- {
+ if (files != null)
+ {
+ foreach (string file in files)
+ {
excludeFile = false;
- string fileTemp;
- if (file.Substring(0,2) == "./" || file.Substring(0,2) == ".\\")
- {
- fileTemp = file.Substring(2);
- }
- else
- {
- fileTemp = file;
- }
+ string fileTemp;
+ if (file.Substring(0, 2) == "./" || file.Substring(0, 2) == ".\\")
+ {
+ fileTemp = file.Substring(2);
+ }
+ else
+ {
+ fileTemp = file;
+ }
// Check all excludions and set flag if there are any hits.
- foreach ( ExcludeNode exclude in exclusions )
+ foreach (ExcludeNode exclude in exclusions)
{
- Regex exRegEx = new Regex( exclude.Pattern );
- match = exRegEx.Match( file );
+ Regex exRegEx = new Regex(exclude.Pattern);
+ match = exRegEx.Match(file);
excludeFile |= match.Success;
}
- if ( !excludeFile )
+ if (!excludeFile)
{
- m_Files.Add( fileTemp );
+ m_Files.Add(fileTemp);
}
- }
- }
+ }
+ }
// don't call return here, because we may need to recursively search directories below
// this one, even if no matches were found in this directory.
- }
- else
- {
- try
- {
- files = Directory.GetFiles(path);
- }
+ }
+ else
+ {
+ try
+ {
+ files = Directory.GetFiles(path);
+ }
catch (IOException)
{
// swallow weird IOException error when running in a virtual box
@@ -248,12 +248,12 @@ namespace Prebuild.Core.Nodes
}
}
}
- }
-
- if(recurse)
- {
- string[] dirs = Directory.GetDirectories(path);
- if(dirs != null && dirs.Length > 0)
+ }
+
+ if (recurse)
+ {
+ string[] dirs = Directory.GetDirectories(path);
+ if (dirs != null && dirs.Length > 0)
{
foreach (string str in dirs)
{
@@ -265,98 +265,98 @@ namespace Prebuild.Core.Nodes
RecurseDirectories(Helper.NormalizePath(str), pattern, recurse, useRegex, exclusions);
}
}
- }
- }
- catch(DirectoryNotFoundException)
- {
- return;
- }
- catch(ArgumentException)
- {
- return;
- }
- }
+ }
+ }
+ catch (DirectoryNotFoundException)
+ {
+ return;
+ }
+ catch (ArgumentException)
+ {
+ return;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- ///
- ///
- ///
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- string path = Helper.AttributeValue(node, "path", ".");
- string pattern = Helper.AttributeValue(node, "pattern", "*");
+ ///
+ ///
+ ///
+ ///
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ string path = Helper.AttributeValue(node, "path", ".");
+ string pattern = Helper.AttributeValue(node, "pattern", "*");
string destination = Helper.AttributeValue(node, "destination", string.Empty);
- bool recurse = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "recurse", "false"));
- bool useRegex = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "useRegex", "false"));
- string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty);
- if (buildAction != string.Empty)
- m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction);
+ bool recurse = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "recurse", "false"));
+ bool useRegex = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "useRegex", "false"));
+ string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty);
+ if (buildAction != string.Empty)
+ m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction);
- //TODO: Figure out where the subtype node is being assigned
- //string subType = Helper.AttributeValue(node, "subType", string.Empty);
- //if (subType != String.Empty)
- // m_SubType = (SubType)Enum.Parse(typeof(SubType), subType);
- m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName);
- m_CopyToOutput = (CopyToOutput) Enum.Parse(typeof(CopyToOutput), Helper.AttributeValue(node, "copyToOutput", m_CopyToOutput.ToString()));
- m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString));
- if ( m_Link )
- {
- m_LinkPath = Helper.AttributeValue( node, "linkPath", string.Empty );
- }
- m_PreservePath = bool.Parse( Helper.AttributeValue( node, "preservePath", bool.FalseString ) );
+ //TODO: Figure out where the subtype node is being assigned
+ //string subType = Helper.AttributeValue(node, "subType", string.Empty);
+ //if (subType != String.Empty)
+ // m_SubType = (SubType)Enum.Parse(typeof(SubType), subType);
+ m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName);
+ m_CopyToOutput = (CopyToOutput)Enum.Parse(typeof(CopyToOutput), Helper.AttributeValue(node, "copyToOutput", m_CopyToOutput.ToString()));
+ m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString));
+ if (m_Link)
+ {
+ m_LinkPath = Helper.AttributeValue(node, "linkPath", string.Empty);
+ }
+ m_PreservePath = bool.Parse(Helper.AttributeValue(node, "preservePath", bool.FalseString));
- if ( buildAction == "Copy")
+ if (buildAction == "Copy")
m_Destination = destination;
- if(path != null && path.Length == 0)
- path = ".";//use current directory
-
- //throw new WarningException("Match must have a 'path' attribute");
+ if (path != null && path.Length == 0)
+ path = ".";//use current directory
- if(pattern == null)
- {
- throw new WarningException("Match must have a 'pattern' attribute");
- }
+ //throw new WarningException("Match must have a 'path' attribute");
- path = Helper.NormalizePath(path);
- if(!Directory.Exists(path))
- {
- throw new WarningException("Match path does not exist: {0}", path);
- }
+ if (pattern == null)
+ {
+ throw new WarningException("Match must have a 'pattern' attribute");
+ }
- try
- {
- if(useRegex)
- {
- m_Regex = new Regex(pattern);
- }
- }
- catch(ArgumentException ex)
- {
- throw new WarningException("Could not compile regex pattern: {0}", ex.Message);
- }
+ path = Helper.NormalizePath(path);
+ if (!Directory.Exists(path))
+ {
+ throw new WarningException("Match path does not exist: {0}", path);
+ }
+
+ try
+ {
+ if (useRegex)
+ {
+ m_Regex = new Regex(pattern);
+ }
+ }
+ catch (ArgumentException ex)
+ {
+ throw new WarningException("Could not compile regex pattern: {0}", ex.Message);
+ }
- foreach(XmlNode child in node.ChildNodes)
- {
- IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
- if(dataNode is ExcludeNode)
- {
- ExcludeNode excludeNode = (ExcludeNode)dataNode;
- m_Exclusions.Add( excludeNode );
- }
- }
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
+ if (dataNode is ExcludeNode)
+ {
+ ExcludeNode excludeNode = (ExcludeNode)dataNode;
+ m_Exclusions.Add(excludeNode);
+ }
+ }
- RecurseDirectories( path, pattern, recurse, useRegex, m_Exclusions );
+ RecurseDirectories(path, pattern, recurse, useRegex, m_Exclusions);
if (m_Files.Count < 1)
{
@@ -371,8 +371,8 @@ namespace Prebuild.Core.Nodes
throw new WarningException("Match" + projectName + " returned no files: {0}{1}", Helper.EndPath(path), pattern);
}
m_Regex = null;
- }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/OptionsNode.cs b/Prebuild/src/Core/Nodes/OptionsNode.cs
index a562acf5b6..3ec3732dd9 100755
--- a/Prebuild/src/Core/Nodes/OptionsNode.cs
+++ b/Prebuild/src/Core/Nodes/OptionsNode.cs
@@ -35,339 +35,339 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Options")]
- public class OptionsNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Options")]
+ public class OptionsNode : DataNode
+ {
+ #region Fields
- private static readonly Dictionary m_OptionFields = new Dictionary();
+ private static readonly Dictionary m_OptionFields = new Dictionary();
- [OptionNode("CompilerDefines")]
- private string m_CompilerDefines = "";
+ [OptionNode("CompilerDefines")]
+ private string m_CompilerDefines = "";
- ///
- ///
- ///
- public string CompilerDefines
- {
- get
- {
- return m_CompilerDefines;
- }
- set
- {
- m_CompilerDefines = value;
- }
- }
-
- [OptionNode("OptimizeCode")]
- private bool m_OptimizeCode;
+ ///
+ ///
+ ///
+ public string CompilerDefines
+ {
+ get
+ {
+ return m_CompilerDefines;
+ }
+ set
+ {
+ m_CompilerDefines = value;
+ }
+ }
- ///
- ///
- ///
- public bool OptimizeCode
- {
- get
- {
- return m_OptimizeCode;
- }
- set
- {
- m_OptimizeCode = value;
- }
- }
-
- [OptionNode("CheckUnderflowOverflow")]
- private bool m_CheckUnderflowOverflow;
+ [OptionNode("OptimizeCode")]
+ private bool m_OptimizeCode;
- ///
- ///
- ///
- public bool CheckUnderflowOverflow
- {
- get
- {
- return m_CheckUnderflowOverflow;
- }
- set
- {
- m_CheckUnderflowOverflow = value;
- }
- }
-
- [OptionNode("AllowUnsafe")]
- private bool m_AllowUnsafe;
+ ///
+ ///
+ ///
+ public bool OptimizeCode
+ {
+ get
+ {
+ return m_OptimizeCode;
+ }
+ set
+ {
+ m_OptimizeCode = value;
+ }
+ }
- ///
- ///
- ///
- public bool AllowUnsafe
- {
- get
- {
- return m_AllowUnsafe;
- }
- set
- {
- m_AllowUnsafe = value;
- }
- }
-
- [OptionNode("PreBuildEvent")]
- private string m_PreBuildEvent;
-
- ///
- ///
- ///
- public string PreBuildEvent
- {
- get
- {
- return m_PreBuildEvent;
- }
- set
- {
- m_PreBuildEvent = value;
- }
- }
-
- [OptionNode("PostBuildEvent")]
- private string m_PostBuildEvent;
-
- ///
- ///
- ///
- public string PostBuildEvent
- {
- get
- {
- return m_PostBuildEvent;
- }
- set
- {
- m_PostBuildEvent = value;
- }
- }
-
- [OptionNode("PreBuildEventArgs")]
- private string m_PreBuildEventArgs;
-
- ///
- ///
- ///
- public string PreBuildEventArgs
- {
- get
- {
- return m_PreBuildEventArgs;
- }
- set
- {
- m_PreBuildEventArgs = value;
- }
- }
-
- [OptionNode("PostBuildEventArgs")]
- private string m_PostBuildEventArgs;
-
- ///
- ///
- ///
- public string PostBuildEventArgs
- {
- get
- {
- return m_PostBuildEventArgs;
- }
- set
- {
- m_PostBuildEventArgs = value;
- }
- }
-
- [OptionNode("RunPostBuildEvent")]
- private string m_RunPostBuildEvent;
-
- ///
- ///
- ///
- public string RunPostBuildEvent
- {
- get
- {
- return m_RunPostBuildEvent;
- }
- set
- {
- m_RunPostBuildEvent = value;
- }
- }
-
- [OptionNode("RunScript")]
- private string m_RunScript;
-
- ///
- ///
- ///
- public string RunScript
- {
- get
- {
- return m_RunScript;
- }
- set
- {
- m_RunScript = value;
- }
- }
-
- [OptionNode("WarningLevel")]
- private int m_WarningLevel = 4;
+ [OptionNode("CheckUnderflowOverflow")]
+ private bool m_CheckUnderflowOverflow;
- ///
- ///
- ///
- public int WarningLevel
- {
- get
- {
- return m_WarningLevel;
- }
- set
- {
- m_WarningLevel = value;
- }
- }
-
- [OptionNode("WarningsAsErrors")]
- private bool m_WarningsAsErrors;
+ ///
+ ///
+ ///
+ public bool CheckUnderflowOverflow
+ {
+ get
+ {
+ return m_CheckUnderflowOverflow;
+ }
+ set
+ {
+ m_CheckUnderflowOverflow = value;
+ }
+ }
- ///
- ///
- ///
- public bool WarningsAsErrors
- {
- get
- {
- return m_WarningsAsErrors;
- }
- set
- {
- m_WarningsAsErrors = value;
- }
- }
+ [OptionNode("AllowUnsafe")]
+ private bool m_AllowUnsafe;
- [OptionNode("SuppressWarnings")]
- private string m_SuppressWarnings = "";
+ ///
+ ///
+ ///
+ public bool AllowUnsafe
+ {
+ get
+ {
+ return m_AllowUnsafe;
+ }
+ set
+ {
+ m_AllowUnsafe = value;
+ }
+ }
- ///
- ///
- ///
- public string SuppressWarnings
- {
- get
- {
- return m_SuppressWarnings;
- }
- set
- {
- m_SuppressWarnings = value;
- }
- }
+ [OptionNode("PreBuildEvent")]
+ private string m_PreBuildEvent;
- [OptionNode("Prefer32Bit")]
- private bool m_Prefer32Bit;
+ ///
+ ///
+ ///
+ public string PreBuildEvent
+ {
+ get
+ {
+ return m_PreBuildEvent;
+ }
+ set
+ {
+ m_PreBuildEvent = value;
+ }
+ }
- ///
- ///
- ///
- public bool Prefer32Bit
- {
- get
- {
- return m_Prefer32Bit;
- }
- set
- {
- m_Prefer32Bit = value;
- }
- }
-
- [OptionNode("OutDir")]
- private string m_OutDir = "bin/";
+ [OptionNode("PostBuildEvent")]
+ private string m_PostBuildEvent;
- ///
- ///
- ///
- public string OutDir
- {
- get
- {
- return m_OutDir;
- }
- set
- {
- m_OutDir = value;
- }
- }
+ ///
+ ///
+ ///
+ public string PostBuildEvent
+ {
+ get
+ {
+ return m_PostBuildEvent;
+ }
+ set
+ {
+ m_PostBuildEvent = value;
+ }
+ }
- [OptionNode("OutputPath")]
- private string m_OutputPath = "bin/";
+ [OptionNode("PreBuildEventArgs")]
+ private string m_PreBuildEventArgs;
- ///
- ///
- ///
- public string OutputPath
- {
- get
- {
- return m_OutputPath;
- }
- set
- {
- m_OutputPath = value;
- }
- }
+ ///
+ ///
+ ///
+ public string PreBuildEventArgs
+ {
+ get
+ {
+ return m_PreBuildEventArgs;
+ }
+ set
+ {
+ m_PreBuildEventArgs = value;
+ }
+ }
- [OptionNode("OutputType")]
- private string m_OutputType = "Exe";
+ [OptionNode("PostBuildEventArgs")]
+ private string m_PostBuildEventArgs;
- ///
- ///
- ///
- public string OutputType
- {
- get
- {
- return m_OutputType;
- }
- set
- {
- m_OutputType = value;
- }
- }
+ ///
+ ///
+ ///
+ public string PostBuildEventArgs
+ {
+ get
+ {
+ return m_PostBuildEventArgs;
+ }
+ set
+ {
+ m_PostBuildEventArgs = value;
+ }
+ }
- [OptionNode("RootNamespace")]
- private string m_RootNamespace = "";
+ [OptionNode("RunPostBuildEvent")]
+ private string m_RunPostBuildEvent;
- ///
- ///
- ///
- public string RootNamespace
- {
- get
- {
- return m_RootNamespace;
- }
- set
- {
- m_RootNamespace = value;
- }
- }
+ ///
+ ///
+ ///
+ public string RunPostBuildEvent
+ {
+ get
+ {
+ return m_RunPostBuildEvent;
+ }
+ set
+ {
+ m_RunPostBuildEvent = value;
+ }
+ }
+
+ [OptionNode("RunScript")]
+ private string m_RunScript;
+
+ ///
+ ///
+ ///
+ public string RunScript
+ {
+ get
+ {
+ return m_RunScript;
+ }
+ set
+ {
+ m_RunScript = value;
+ }
+ }
+
+ [OptionNode("WarningLevel")]
+ private int m_WarningLevel = 4;
+
+ ///
+ ///
+ ///
+ public int WarningLevel
+ {
+ get
+ {
+ return m_WarningLevel;
+ }
+ set
+ {
+ m_WarningLevel = value;
+ }
+ }
+
+ [OptionNode("WarningsAsErrors")]
+ private bool m_WarningsAsErrors;
+
+ ///
+ ///
+ ///
+ public bool WarningsAsErrors
+ {
+ get
+ {
+ return m_WarningsAsErrors;
+ }
+ set
+ {
+ m_WarningsAsErrors = value;
+ }
+ }
+
+ [OptionNode("SuppressWarnings")]
+ private string m_SuppressWarnings = "";
+
+ ///
+ ///
+ ///
+ public string SuppressWarnings
+ {
+ get
+ {
+ return m_SuppressWarnings;
+ }
+ set
+ {
+ m_SuppressWarnings = value;
+ }
+ }
+
+ [OptionNode("Prefer32Bit")]
+ private bool m_Prefer32Bit;
+
+ ///
+ ///
+ ///
+ public bool Prefer32Bit
+ {
+ get
+ {
+ return m_Prefer32Bit;
+ }
+ set
+ {
+ m_Prefer32Bit = value;
+ }
+ }
+
+ [OptionNode("OutDir")]
+ private string m_OutDir = "bin/";
+
+ ///
+ ///
+ ///
+ public string OutDir
+ {
+ get
+ {
+ return m_OutDir;
+ }
+ set
+ {
+ m_OutDir = value;
+ }
+ }
+
+ [OptionNode("OutputPath")]
+ private string m_OutputPath = "bin/";
+
+ ///
+ ///
+ ///
+ public string OutputPath
+ {
+ get
+ {
+ return m_OutputPath;
+ }
+ set
+ {
+ m_OutputPath = value;
+ }
+ }
+
+ [OptionNode("OutputType")]
+ private string m_OutputType = "Exe";
+
+ ///
+ ///
+ ///
+ public string OutputType
+ {
+ get
+ {
+ return m_OutputType;
+ }
+ set
+ {
+ m_OutputType = value;
+ }
+ }
+
+ [OptionNode("RootNamespace")]
+ private string m_RootNamespace = "";
+
+ ///
+ ///
+ ///
+ public string RootNamespace
+ {
+ get
+ {
+ return m_RootNamespace;
+ }
+ set
+ {
+ m_RootNamespace = value;
+ }
+ }
[OptionNode("GenerateDocumentation")]
private bool m_GenerateDocumentation;
@@ -387,352 +387,353 @@ namespace Prebuild.Core.Nodes
}
}
- [OptionNode("GenerateXmlDocFile")]
- private bool m_GenerateXmlDocFile;
+ [OptionNode("GenerateXmlDocFile")]
+ private bool m_GenerateXmlDocFile;
- ///
- ///
- ///
- public bool GenerateXmlDocFile
- {
- get
- {
- return m_GenerateXmlDocFile;
- }
- set
- {
- m_GenerateXmlDocFile = value;
- }
- }
-
- [OptionNode("XmlDocFile")]
- private string m_XmlDocFile = "";
-
- ///
- ///
- ///
- public string XmlDocFile
- {
- get
- {
- return m_XmlDocFile;
- }
- set
- {
- m_XmlDocFile = value;
- }
- }
-
- [OptionNode("KeyFile")]
- private string m_KeyFile = "";
-
- ///
- ///
- ///
- public string KeyFile
- {
- get
- {
- return m_KeyFile;
- }
- set
- {
- m_KeyFile = value;
- }
- }
-
- [OptionNode("DebugInformation")]
- private bool m_DebugInformation;
-
- ///
- ///
- ///
- public bool DebugInformation
- {
- get
- {
- return m_DebugInformation;
- }
- set
- {
- m_DebugInformation = value;
- }
- }
-
- [OptionNode("RegisterComInterop")]
- private bool m_RegisterComInterop;
-
- ///
- ///
- ///
- public bool RegisterComInterop
- {
- get
- {
- return m_RegisterComInterop;
- }
- set
- {
- m_RegisterComInterop = value;
- }
- }
-
- [OptionNode("RemoveIntegerChecks")]
- private bool m_RemoveIntegerChecks;
-
- ///
- ///
- ///
- public bool RemoveIntegerChecks
- {
- get
- {
- return m_RemoveIntegerChecks;
- }
- set
- {
- m_RemoveIntegerChecks = value;
- }
- }
-
- [OptionNode("IncrementalBuild")]
- private bool m_IncrementalBuild;
-
- ///
- ///
- ///
- public bool IncrementalBuild
- {
- get
- {
- return m_IncrementalBuild;
- }
- set
- {
- m_IncrementalBuild = value;
- }
- }
-
- [OptionNode("BaseAddress")]
- private string m_BaseAddress = "285212672";
-
- ///
- ///
- ///
- public string BaseAddress
- {
- get
- {
- return m_BaseAddress;
- }
- set
- {
- m_BaseAddress = value;
- }
- }
-
- [OptionNode("FileAlignment")]
- private int m_FileAlignment = 4096;
-
- ///
- ///
- ///
- public int FileAlignment
- {
- get
- {
- return m_FileAlignment;
- }
- set
- {
- m_FileAlignment = value;
- }
- }
-
- [OptionNode("NoStdLib")]
- private bool m_NoStdLib;
-
- ///
- ///
- ///
- public bool NoStdLib
- {
- get
- {
- return m_NoStdLib;
- }
- set
- {
- m_NoStdLib = value;
- }
- }
-
- private readonly List m_FieldsDefined = new List();
-
- #endregion
-
- #region Constructors
-
- ///
- /// Initializes the class.
- ///
- static OptionsNode()
- {
- Type t = typeof(OptionsNode);
-
- foreach(FieldInfo f in t.GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
- {
- object[] attrs = f.GetCustomAttributes(typeof(OptionNodeAttribute), false);
- if(attrs == null || attrs.Length < 1)
- {
- continue;
- }
-
- OptionNodeAttribute ona = (OptionNodeAttribute)attrs[0];
- m_OptionFields[ona.NodeName] = f;
- }
- }
-
- #endregion
-
- #region Properties
-
- ///
- /// Gets the at the specified index.
- ///
- ///
- public object this[string index]
- {
- get
- {
- if(!m_OptionFields.ContainsKey(index))
- {
- return null;
- }
-
- FieldInfo f = m_OptionFields[index];
- return f.GetValue(this);
- }
- }
-
- ///
- /// Gets the at the specified index.
- ///
- ///
- public object this[string index, object defaultValue]
- {
- get
- {
- object valueObject = this[index];
- if(valueObject != null && valueObject is string && ((string)valueObject).Length == 0)
- {
- return defaultValue;
- }
- return valueObject;
- }
- }
-
-
- #endregion
-
- #region Private Methods
-
- private void FlagDefined(string name)
- {
- if(!m_FieldsDefined.Contains(name))
- {
- m_FieldsDefined.Add(name);
- }
- }
-
- private void SetOption(string nodeName, string val)
- {
- lock(m_OptionFields)
- {
- if(!m_OptionFields.ContainsKey(nodeName))
- {
- return;
- }
-
- FieldInfo f = m_OptionFields[nodeName];
- f.SetValue(this, Helper.TranslateValue(f.FieldType, val));
- FlagDefined(f.Name);
- }
- }
-
- #endregion
-
- #region Public Methods
-
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
-
- foreach(XmlNode child in node.ChildNodes)
- {
- SetOption(child.Name, Helper.InterpolateForEnvironmentVariables(child.InnerText));
- }
- }
-
- ///
- /// Return 'true' if the option symbol has had a value set
- ///
- ///
- /// 'true' if the option value has been set
- public bool IsDefined(string name)
+ ///
+ ///
+ ///
+ public bool GenerateXmlDocFile
{
- return m_FieldsDefined.Contains("m_" + name);
+ get
+ {
+ return m_GenerateXmlDocFile;
+ }
+ set
+ {
+ m_GenerateXmlDocFile = value;
+ }
}
- // Return the names of all the fields that have had a value set
- public IEnumerable AllDefined()
+ [OptionNode("XmlDocFile")]
+ private string m_XmlDocFile = "";
+
+ ///
+ ///
+ ///
+ public string XmlDocFile
{
- foreach (string name in m_FieldsDefined) {
- yield return name.Substring(2);
+ get
+ {
+ return m_XmlDocFile;
}
- }
+ set
+ {
+ m_XmlDocFile = value;
+ }
+ }
- ///
- /// Copies to.
- ///
- /// The opt.
- public void CopyTo(OptionsNode opt)
- {
- if(opt == null)
- {
- return;
- }
+ [OptionNode("KeyFile")]
+ private string m_KeyFile = "";
- foreach(FieldInfo f in m_OptionFields.Values)
- {
- if(m_FieldsDefined.Contains(f.Name))
- {
- f.SetValue(opt, f.GetValue(this));
- opt.m_FieldsDefined.Add(f.Name);
- }
- }
- }
+ ///
+ ///
+ ///
+ public string KeyFile
+ {
+ get
+ {
+ return m_KeyFile;
+ }
+ set
+ {
+ m_KeyFile = value;
+ }
+ }
+
+ [OptionNode("DebugInformation")]
+ private bool m_DebugInformation;
+
+ ///
+ ///
+ ///
+ public bool DebugInformation
+ {
+ get
+ {
+ return m_DebugInformation;
+ }
+ set
+ {
+ m_DebugInformation = value;
+ }
+ }
+
+ [OptionNode("RegisterComInterop")]
+ private bool m_RegisterComInterop;
+
+ ///
+ ///
+ ///
+ public bool RegisterComInterop
+ {
+ get
+ {
+ return m_RegisterComInterop;
+ }
+ set
+ {
+ m_RegisterComInterop = value;
+ }
+ }
+
+ [OptionNode("RemoveIntegerChecks")]
+ private bool m_RemoveIntegerChecks;
+
+ ///
+ ///
+ ///
+ public bool RemoveIntegerChecks
+ {
+ get
+ {
+ return m_RemoveIntegerChecks;
+ }
+ set
+ {
+ m_RemoveIntegerChecks = value;
+ }
+ }
+
+ [OptionNode("IncrementalBuild")]
+ private bool m_IncrementalBuild;
+
+ ///
+ ///
+ ///
+ public bool IncrementalBuild
+ {
+ get
+ {
+ return m_IncrementalBuild;
+ }
+ set
+ {
+ m_IncrementalBuild = value;
+ }
+ }
+
+ [OptionNode("BaseAddress")]
+ private string m_BaseAddress = "285212672";
+
+ ///
+ ///
+ ///
+ public string BaseAddress
+ {
+ get
+ {
+ return m_BaseAddress;
+ }
+ set
+ {
+ m_BaseAddress = value;
+ }
+ }
+
+ [OptionNode("FileAlignment")]
+ private int m_FileAlignment = 4096;
+
+ ///
+ ///
+ ///
+ public int FileAlignment
+ {
+ get
+ {
+ return m_FileAlignment;
+ }
+ set
+ {
+ m_FileAlignment = value;
+ }
+ }
+
+ [OptionNode("NoStdLib")]
+ private bool m_NoStdLib;
+
+ ///
+ ///
+ ///
+ public bool NoStdLib
+ {
+ get
+ {
+ return m_NoStdLib;
+ }
+ set
+ {
+ m_NoStdLib = value;
+ }
+ }
+
+ private readonly List m_FieldsDefined = new List();
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes the class.
+ ///
+ static OptionsNode()
+ {
+ Type t = typeof(OptionsNode);
+
+ foreach (FieldInfo f in t.GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
+ {
+ object[] attrs = f.GetCustomAttributes(typeof(OptionNodeAttribute), false);
+ if (attrs == null || attrs.Length < 1)
+ {
+ continue;
+ }
+
+ OptionNodeAttribute ona = (OptionNodeAttribute)attrs[0];
+ m_OptionFields[ona.NodeName] = f;
+ }
+ }
+
+ #endregion
+
+ #region Properties
+
+ ///
+ /// Gets the at the specified index.
+ ///
+ ///
+ public object this[string index]
+ {
+ get
+ {
+ if (!m_OptionFields.ContainsKey(index))
+ {
+ return null;
+ }
+
+ FieldInfo f = m_OptionFields[index];
+ return f.GetValue(this);
+ }
+ }
+
+ ///
+ /// Gets the at the specified index.
+ ///
+ ///
+ public object this[string index, object defaultValue]
+ {
+ get
+ {
+ object valueObject = this[index];
+ if (valueObject != null && valueObject is string && ((string)valueObject).Length == 0)
+ {
+ return defaultValue;
+ }
+ return valueObject;
+ }
+ }
+
+
+ #endregion
+
+ #region Private Methods
+
+ private void FlagDefined(string name)
+ {
+ if (!m_FieldsDefined.Contains(name))
+ {
+ m_FieldsDefined.Add(name);
+ }
+ }
+
+ private void SetOption(string nodeName, string val)
+ {
+ lock (m_OptionFields)
+ {
+ if (!m_OptionFields.ContainsKey(nodeName))
+ {
+ return;
+ }
+
+ FieldInfo f = m_OptionFields[nodeName];
+ f.SetValue(this, Helper.TranslateValue(f.FieldType, val));
+ FlagDefined(f.Name);
+ }
+ }
+
+ #endregion
+
+ #region Public Methods
+
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ SetOption(child.Name, Helper.InterpolateForEnvironmentVariables(child.InnerText));
+ }
+ }
+
+ ///
+ /// Return 'true' if the option symbol has had a value set
+ ///
+ ///
+ /// 'true' if the option value has been set
+ public bool IsDefined(string name)
+ {
+ return m_FieldsDefined.Contains("m_" + name);
+ }
+
+ // Return the names of all the fields that have had a value set
+ public IEnumerable AllDefined()
+ {
+ foreach (string name in m_FieldsDefined)
+ {
+ yield return name.Substring(2);
+ }
+ }
+
+ ///
+ /// Copies to.
+ ///
+ /// The opt.
+ public void CopyTo(OptionsNode opt)
+ {
+ if (opt == null)
+ {
+ return;
+ }
+
+ foreach (FieldInfo f in m_OptionFields.Values)
+ {
+ if (m_FieldsDefined.Contains(f.Name))
+ {
+ f.SetValue(opt, f.GetValue(this));
+ opt.m_FieldsDefined.Add(f.Name);
+ }
+ }
+ }
public override string ToString()
{
- StringBuilder buff = new StringBuilder();
- foreach(FieldInfo f in m_OptionFields.Values)
- {
- if(m_FieldsDefined.Contains(f.Name))
- {
- buff.Append(f.Name);
- buff.Append("=");
- buff.Append(f.GetValue(this).ToString());
- buff.Append(",");
- }
- }
+ StringBuilder buff = new StringBuilder();
+ foreach (FieldInfo f in m_OptionFields.Values)
+ {
+ if (m_FieldsDefined.Contains(f.Name))
+ {
+ buff.Append(f.Name);
+ buff.Append("=");
+ buff.Append(f.GetValue(this).ToString());
+ buff.Append(",");
+ }
+ }
return buff.ToString();
}
diff --git a/Prebuild/src/Core/Nodes/PackageReferenceNode.cs b/Prebuild/src/Core/Nodes/PackageReferenceNode.cs
index 56775a09bd..9614acc7bc 100755
--- a/Prebuild/src/Core/Nodes/PackageReferenceNode.cs
+++ b/Prebuild/src/Core/Nodes/PackageReferenceNode.cs
@@ -32,60 +32,60 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("PackageReference")]
- public class PackageReferenceNode : DataNode, IComparable
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("PackageReference")]
+ public class PackageReferenceNode : DataNode, IComparable
+ {
+ #region Fields
- private string m_Name = "unknown";
- private string m_Version;
+ private string m_Name = "unknown";
+ private string m_Version;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- ///
- /// Gets the version.
- ///
- /// The version.
- public string Version
- {
- get
- {
- return m_Version;
- }
- }
+ ///
+ /// Gets the version.
+ ///
+ /// The version.
+ public string Version
+ {
+ get
+ {
+ return m_Version;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- m_Version = Helper.AttributeValue(node, "version", m_Version);
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ m_Version = Helper.AttributeValue(node, "version", m_Version);
+ }
- #endregion
+ #endregion
#region IComparable Members
@@ -96,5 +96,5 @@ namespace Prebuild.Core.Nodes
}
#endregion
- }
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ProcessNode.cs b/Prebuild/src/Core/Nodes/ProcessNode.cs
index 8ca8e493d2..92d8aaa4b8 100644
--- a/Prebuild/src/Core/Nodes/ProcessNode.cs
+++ b/Prebuild/src/Core/Nodes/ProcessNode.cs
@@ -32,77 +32,77 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Process")]
- public class ProcessNode : DataNode
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Process")]
+ public class ProcessNode : DataNode
+ {
+ #region Fields
- private string m_Path;
- private bool m_IsValid = true;
+ private string m_Path;
+ private bool m_IsValid = true;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- ///
- /// Gets a value indicating whether this instance is valid.
- ///
- /// true if this instance is valid; otherwise, false.
- public bool IsValid
- {
- get
- {
- return m_IsValid;
- }
- }
+ ///
+ /// Gets a value indicating whether this instance is valid.
+ ///
+ /// true if this instance is valid; otherwise, false.
+ public bool IsValid
+ {
+ get
+ {
+ return m_IsValid;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
- m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
- if(m_Path == null)
- {
- m_Path = "";
- }
+ m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
+ if (m_Path == null)
+ {
+ m_Path = "";
+ }
- try
- {
- m_Path = Helper.ResolvePath(m_Path);
- }
- catch(ArgumentException)
- {
- Kernel.Instance.Log.Write(LogType.Warning, "Could not find prebuild file for processing: {0}", m_Path);
- m_IsValid = false;
- }
- }
+ try
+ {
+ m_Path = Helper.ResolvePath(m_Path);
+ }
+ catch (ArgumentException)
+ {
+ Kernel.Instance.Log.Write(LogType.Warning, "Could not find prebuild file for processing: {0}", m_Path);
+ m_IsValid = false;
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ProjectNode.cs b/Prebuild/src/Core/Nodes/ProjectNode.cs
index 9b62cbff37..7ec87bfc92 100755
--- a/Prebuild/src/Core/Nodes/ProjectNode.cs
+++ b/Prebuild/src/Core/Nodes/ProjectNode.cs
@@ -34,216 +34,216 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- /// A set of values that the Project's type can be
- ///
- public enum ProjectType
- {
- ///
- /// The project is a console executable
- ///
- Exe,
- ///
- /// The project is a windows executable
- ///
- WinExe,
- ///
- /// The project is a library
- ///
- Library,
+ ///
+ /// A set of values that the Project's type can be
+ ///
+ public enum ProjectType
+ {
+ ///
+ /// The project is a console executable
+ ///
+ Exe,
+ ///
+ /// The project is a windows executable
+ ///
+ WinExe,
+ ///
+ /// The project is a library
+ ///
+ Library,
///
/// The project is a website
///
Web,
- }
+ }
- ///
- ///
- ///
- public enum ClrRuntime
- {
- ///
- ///
- ///
- Microsoft,
- ///
- ///
- ///
- Mono
- }
- ///
- /// The version of the .NET framework to use (Required for VS2008)
- /// We don't need .NET 1.1 in here, it'll default when using vs2003.
- ///
- public enum FrameworkVersion
- {
- ///
- /// .NET 2.0
- ///
- v2_0,
- ///
- /// .NET 3.0
- ///
- v3_0,
- ///
- /// .NET 3.5
- ///
- v3_5,
- ///
- /// .NET 4.0
- ///
- v4_0,
+ ///
+ ///
+ ///
+ public enum ClrRuntime
+ {
+ ///
+ ///
+ ///
+ Microsoft,
+ ///
+ ///
+ ///
+ Mono
+ }
+ ///
+ /// The version of the .NET framework to use (Required for VS2008)
+ /// We don't need .NET 1.1 in here, it'll default when using vs2003.
+ ///
+ public enum FrameworkVersion
+ {
+ ///
+ /// .NET 2.0
+ ///
+ v2_0,
+ ///
+ /// .NET 3.0
+ ///
+ v3_0,
+ ///
+ /// .NET 3.5
+ ///
+ v3_5,
+ ///
+ /// .NET 4.0
+ ///
+ v4_0,
///
/// .NET 4.5
///
v4_5,
- ///
- /// .NET 4.5.1
- ///
- v4_5_1,
- v4_5_2,
- ///
- /// .NET 4.6
- ///
- v4_6,
- ///
- /// .NET 4.6.1
- ///
- v4_6_1,
- v4_6_2,
- v4_7,
- v4_7_1,
- v4_7_2,
- v4_8,
- netstandard2_0,
- net5_0,
- net6_0
- }
- ///
- /// The Node object representing /Prebuild/Solution/Project elements
- ///
- [DataNode("Project")]
- public class ProjectNode : DataNode, IComparable
- {
- #region Fields
+ ///
+ /// .NET 4.5.1
+ ///
+ v4_5_1,
+ v4_5_2,
+ ///
+ /// .NET 4.6
+ ///
+ v4_6,
+ ///
+ /// .NET 4.6.1
+ ///
+ v4_6_1,
+ v4_6_2,
+ v4_7,
+ v4_7_1,
+ v4_7_2,
+ v4_8,
+ netstandard2_0,
+ net5_0,
+ net6_0
+ }
+ ///
+ /// The Node object representing /Prebuild/Solution/Project elements
+ ///
+ [DataNode("Project")]
+ public class ProjectNode : DataNode, IComparable
+ {
+ #region Fields
- private string m_Name = "unknown";
- private string m_Path = "";
- private string m_FullPath = "";
- private string m_AssemblyName;
- private string m_AppIcon = "";
+ private string m_Name = "unknown";
+ private string m_Path = "";
+ private string m_FullPath = "";
+ private string m_AssemblyName;
+ private string m_AppIcon = "";
private string m_ApplicationManifest = "";
private string m_ConfigFile = "";
- private string m_DesignerFolder = "";
- private string m_Language = "C#";
- private ProjectType m_Type = ProjectType.Exe;
- private ClrRuntime m_Runtime = ClrRuntime.Microsoft;
+ private string m_DesignerFolder = "";
+ private string m_Language = "C#";
+ private ProjectType m_Type = ProjectType.Exe;
+ private ClrRuntime m_Runtime = ClrRuntime.Microsoft;
private FrameworkVersion m_Framework = FrameworkVersion.v2_0;
private bool m_useFramework = true;
- private string m_StartupObject = "";
- private string m_RootNamespace;
- private string m_FilterGroups = "";
- private string m_Version = "";
- private Guid m_Guid;
+ private string m_StartupObject = "";
+ private string m_RootNamespace;
+ private string m_FilterGroups = "";
+ private string m_Version = "";
+ private Guid m_Guid;
private string m_DebugStartParameters;
private readonly Dictionary m_Configurations = new Dictionary();
private readonly List m_ReferencePaths = new List();
- private readonly List m_ProjectReferences = new List();
- private readonly List m_PackageReferences = new List();
- private readonly List m_References = new List();
+ private readonly List m_ProjectReferences = new List();
+ private readonly List m_PackageReferences = new List();
+ private readonly List m_References = new List();
private readonly List m_Authors = new List();
- private FilesNode m_Files;
+ private FilesNode m_Files;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
- ///
- /// The version of the .NET Framework to compile under
- ///
- public FrameworkVersion FrameworkVersion
- {
- get
- {
- return m_Framework;
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
+ ///
+ /// The version of the .NET Framework to compile under
+ ///
+ public FrameworkVersion FrameworkVersion
+ {
+ get
+ {
+ return m_Framework;
+ }
set
{
m_Framework = value;
m_useFramework = false;
}
- }
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- ///
- /// Gets the filter groups.
- ///
- /// The filter groups.
- public string FilterGroups
- {
- get
- {
- return m_FilterGroups;
- }
- }
+ ///
+ /// Gets the filter groups.
+ ///
+ /// The filter groups.
+ public string FilterGroups
+ {
+ get
+ {
+ return m_FilterGroups;
+ }
+ }
- ///
- /// Gets the project's version
- ///
- /// The project's version.
- public string Version
- {
- get
- {
- return m_Version;
- }
- }
+ ///
+ /// Gets the project's version
+ ///
+ /// The project's version.
+ public string Version
+ {
+ get
+ {
+ return m_Version;
+ }
+ }
- ///
- /// Gets the full path.
- ///
- /// The full path.
- public string FullPath
- {
- get
- {
- return m_FullPath;
- }
- }
+ ///
+ /// Gets the full path.
+ ///
+ /// The full path.
+ public string FullPath
+ {
+ get
+ {
+ return m_FullPath;
+ }
+ }
- ///
- /// Gets the name of the assembly.
- ///
- /// The name of the assembly.
- public string AssemblyName
- {
- get
- {
- return m_AssemblyName;
- }
- }
+ ///
+ /// Gets the name of the assembly.
+ ///
+ /// The name of the assembly.
+ public string AssemblyName
+ {
+ get
+ {
+ return m_AssemblyName;
+ }
+ }
///
/// Gets the app icon.
@@ -269,387 +269,387 @@ namespace Prebuild.Core.Nodes
}
}
- ///
- /// Gets the app icon.
- ///
- /// The app icon.
- public string ConfigFile
- {
- get
- {
- return m_ConfigFile;
- }
- }
+ ///
+ /// Gets the app icon.
+ ///
+ /// The app icon.
+ public string ConfigFile
+ {
+ get
+ {
+ return m_ConfigFile;
+ }
+ }
- ///
- ///
- ///
- public string DesignerFolder
- {
- get
- {
- return m_DesignerFolder;
- }
- }
+ ///
+ ///
+ ///
+ public string DesignerFolder
+ {
+ get
+ {
+ return m_DesignerFolder;
+ }
+ }
- ///
- /// Gets the language.
- ///
- /// The language.
- public string Language
- {
- get
- {
- return m_Language;
- }
- }
+ ///
+ /// Gets the language.
+ ///
+ /// The language.
+ public string Language
+ {
+ get
+ {
+ return m_Language;
+ }
+ }
- ///
- /// Gets the type.
- ///
- /// The type.
- public ProjectType Type
- {
- get
- {
- return m_Type;
- }
- }
+ ///
+ /// Gets the type.
+ ///
+ /// The type.
+ public ProjectType Type
+ {
+ get
+ {
+ return m_Type;
+ }
+ }
- ///
- /// Gets the runtime.
- ///
- /// The runtime.
- public ClrRuntime Runtime
- {
- get
- {
- return m_Runtime;
- }
- }
+ ///
+ /// Gets the runtime.
+ ///
+ /// The runtime.
+ public ClrRuntime Runtime
+ {
+ get
+ {
+ return m_Runtime;
+ }
+ }
- private bool m_GenerateAssemblyInfoFile;
-
- ///
- ///
- ///
- public bool GenerateAssemblyInfoFile
- {
- get
- {
- return m_GenerateAssemblyInfoFile;
- }
- set
- {
- m_GenerateAssemblyInfoFile = value;
- }
- }
+ private bool m_GenerateAssemblyInfoFile;
- ///
- /// Gets the startup object.
- ///
- /// The startup object.
- public string StartupObject
- {
- get
- {
- return m_StartupObject;
- }
- }
+ ///
+ ///
+ ///
+ public bool GenerateAssemblyInfoFile
+ {
+ get
+ {
+ return m_GenerateAssemblyInfoFile;
+ }
+ set
+ {
+ m_GenerateAssemblyInfoFile = value;
+ }
+ }
- ///
- /// Gets the root namespace.
- ///
- /// The root namespace.
- public string RootNamespace
- {
- get
- {
- return m_RootNamespace;
- }
- }
+ ///
+ /// Gets the startup object.
+ ///
+ /// The startup object.
+ public string StartupObject
+ {
+ get
+ {
+ return m_StartupObject;
+ }
+ }
- ///
- /// Gets the configurations.
- ///
- /// The configurations.
+ ///
+ /// Gets the root namespace.
+ ///
+ /// The root namespace.
+ public string RootNamespace
+ {
+ get
+ {
+ return m_RootNamespace;
+ }
+ }
+
+ ///
+ /// Gets the configurations.
+ ///
+ /// The configurations.
public List Configurations
- {
- get
- {
- List tmp = new List(ConfigurationsTable.Values);
+ {
+ get
+ {
+ List tmp = new List(ConfigurationsTable.Values);
tmp.Sort();
return tmp;
- }
- }
+ }
+ }
- ///
- /// Gets the configurations table.
- ///
- /// The configurations table.
- public Dictionary ConfigurationsTable
- {
- get
- {
- return m_Configurations;
- }
- }
+ ///
+ /// Gets the configurations table.
+ ///
+ /// The configurations table.
+ public Dictionary ConfigurationsTable
+ {
+ get
+ {
+ return m_Configurations;
+ }
+ }
- ///
- /// Gets the reference paths.
- ///
- /// The reference paths.
- public List ReferencePaths
- {
- get
- {
+ ///
+ /// Gets the reference paths.
+ ///
+ /// The reference paths.
+ public List ReferencePaths
+ {
+ get
+ {
List tmp = new List(m_ReferencePaths);
tmp.Sort();
return tmp;
- }
- }
+ }
+ }
- ///
- /// Gets the references.
- ///
- /// The references.
+ ///
+ /// Gets the references.
+ ///
+ /// The references.
public List References
- {
- get
- {
+ {
+ get
+ {
List tmp = new List(m_References);
tmp.Sort();
return tmp;
- }
- }
+ }
+ }
- ///
- /// Gets the references.
- ///
- /// The references.
+ ///
+ /// Gets the references.
+ ///
+ /// The references.
public List ProjectReferences
- {
- get
- {
+ {
+ get
+ {
List tmp = new List(m_ProjectReferences);
tmp.Sort();
return tmp;
- }
- }
+ }
+ }
- ///
- /// Gets the package references.
- ///
- /// The references.
+ ///
+ /// Gets the package references.
+ ///
+ /// The references.
public List PackageReferences
- {
- get
- {
+ {
+ get
+ {
List tmp = new List(m_PackageReferences);
tmp.Sort();
return tmp;
- }
- }
-
- ///
- /// Gets the Authors list.
- ///
- /// The list of the project's authors.
- public List Authors
- {
- get
- {
- return m_Authors;
- }
- }
+ }
+ }
- ///
- /// Gets the files.
- ///
- /// The files.
- public FilesNode Files
- {
- get
- {
- return m_Files;
- }
- }
+ ///
+ /// Gets the Authors list.
+ ///
+ /// The list of the project's authors.
+ public List Authors
+ {
+ get
+ {
+ return m_Authors;
+ }
+ }
- ///
- /// Gets or sets the parent.
- ///
- /// The parent.
- public override IDataNode Parent
- {
- get
- {
- return base.Parent;
- }
- set
- {
- base.Parent = value;
- if(base.Parent is SolutionNode && m_Configurations.Count < 1)
- {
- SolutionNode parent = (SolutionNode)base.Parent;
- foreach(ConfigurationNode conf in parent.Configurations)
- {
- m_Configurations[conf.NameAndPlatform] = (ConfigurationNode) conf.Clone();
- }
- }
- }
- }
+ ///
+ /// Gets the files.
+ ///
+ /// The files.
+ public FilesNode Files
+ {
+ get
+ {
+ return m_Files;
+ }
+ }
- ///
- /// Gets the GUID.
- ///
- /// The GUID.
- public Guid Guid
- {
- get
- {
- return m_Guid;
- }
- }
+ ///
+ /// Gets or sets the parent.
+ ///
+ /// The parent.
+ public override IDataNode Parent
+ {
+ get
+ {
+ return base.Parent;
+ }
+ set
+ {
+ base.Parent = value;
+ if (base.Parent is SolutionNode && m_Configurations.Count < 1)
+ {
+ SolutionNode parent = (SolutionNode)base.Parent;
+ foreach (ConfigurationNode conf in parent.Configurations)
+ {
+ m_Configurations[conf.NameAndPlatform] = (ConfigurationNode)conf.Clone();
+ }
+ }
+ }
+ }
- public string DebugStartParameters
- {
+ ///
+ /// Gets the GUID.
+ ///
+ /// The GUID.
+ public Guid Guid
+ {
+ get
+ {
+ return m_Guid;
+ }
+ }
+
+ public string DebugStartParameters
+ {
get
{
return m_DebugStartParameters;
}
- }
+ }
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- private void HandleConfiguration(ConfigurationNode conf)
- {
- if(String.Compare(conf.Name, "all", true) == 0) //apply changes to all, this may not always be applied first,
- //so it *may* override changes to the same properties for configurations defines at the project level
- {
- foreach(ConfigurationNode confNode in m_Configurations.Values)
- {
- conf.CopyTo(confNode);//update the config templates defines at the project level with the overrides
- }
- }
- if(m_Configurations.ContainsKey(conf.NameAndPlatform))
- {
- ConfigurationNode parentConf = m_Configurations[conf.NameAndPlatform];
- conf.CopyTo(parentConf);//update the config templates defines at the project level with the overrides
- }
- else
- {
- m_Configurations[conf.NameAndPlatform] = conf;
- }
- }
+ private void HandleConfiguration(ConfigurationNode conf)
+ {
+ if (String.Compare(conf.Name, "all", true) == 0) //apply changes to all, this may not always be applied first,
+ //so it *may* override changes to the same properties for configurations defines at the project level
+ {
+ foreach (ConfigurationNode confNode in m_Configurations.Values)
+ {
+ conf.CopyTo(confNode);//update the config templates defines at the project level with the overrides
+ }
+ }
+ if (m_Configurations.ContainsKey(conf.NameAndPlatform))
+ {
+ ConfigurationNode parentConf = m_Configurations[conf.NameAndPlatform];
+ conf.CopyTo(parentConf);//update the config templates defines at the project level with the overrides
+ }
+ else
+ {
+ m_Configurations[conf.NameAndPlatform] = conf;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- m_Path = Helper.AttributeValue(node, "path", m_Path);
- m_FilterGroups = Helper.AttributeValue(node, "filterGroups", m_FilterGroups);
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ m_Path = Helper.AttributeValue(node, "path", m_Path);
+ m_FilterGroups = Helper.AttributeValue(node, "filterGroups", m_FilterGroups);
m_Version = Helper.AttributeValue(node, "version", m_Version);
m_AppIcon = Helper.AttributeValue(node, "icon", m_AppIcon);
m_ApplicationManifest = Helper.AttributeValue(node, "appmanifest", m_ApplicationManifest);
m_ConfigFile = Helper.AttributeValue(node, "configFile", m_ConfigFile);
- m_DesignerFolder = Helper.AttributeValue(node, "designerFolder", m_DesignerFolder);
- m_AssemblyName = Helper.AttributeValue(node, "assemblyName", m_AssemblyName);
- m_Language = Helper.AttributeValue(node, "language", m_Language);
- m_Type = (ProjectType)Helper.EnumAttributeValue(node, "type", typeof(ProjectType), m_Type);
- m_Runtime = (ClrRuntime)Helper.EnumAttributeValue(node, "runtime", typeof(ClrRuntime), m_Runtime);
- if(m_useFramework)
+ m_DesignerFolder = Helper.AttributeValue(node, "designerFolder", m_DesignerFolder);
+ m_AssemblyName = Helper.AttributeValue(node, "assemblyName", m_AssemblyName);
+ m_Language = Helper.AttributeValue(node, "language", m_Language);
+ m_Type = (ProjectType)Helper.EnumAttributeValue(node, "type", typeof(ProjectType), m_Type);
+ m_Runtime = (ClrRuntime)Helper.EnumAttributeValue(node, "runtime", typeof(ClrRuntime), m_Runtime);
+ if (m_useFramework)
m_Framework = (FrameworkVersion)Helper.EnumAttributeValue(node, "frameworkVersion", typeof(FrameworkVersion), m_Framework);
-
+
m_StartupObject = Helper.AttributeValue(node, "startupObject", m_StartupObject);
- m_RootNamespace = Helper.AttributeValue(node, "rootNamespace", m_RootNamespace);
-
+ m_RootNamespace = Helper.AttributeValue(node, "rootNamespace", m_RootNamespace);
+
int hash = m_Name.GetHashCode();
- Guid guidByHash = new Guid(hash, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- string guid = Helper.AttributeValue(node, "guid", guidByHash.ToString());
- m_Guid = new Guid(guid);
+ Guid guidByHash = new Guid(hash, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ string guid = Helper.AttributeValue(node, "guid", guidByHash.ToString());
+ m_Guid = new Guid(guid);
m_GenerateAssemblyInfoFile = Helper.ParseBoolean(node, "generateAssemblyInfoFile", false);
- m_DebugStartParameters = Helper.AttributeValue(node, "debugStartParameters", string.Empty);
-
- if(string.IsNullOrEmpty(m_AssemblyName))
- {
- m_AssemblyName = m_Name;
- }
+ m_DebugStartParameters = Helper.AttributeValue(node, "debugStartParameters", string.Empty);
- if(string.IsNullOrEmpty(m_RootNamespace))
- {
- m_RootNamespace = m_Name;
- }
+ if (string.IsNullOrEmpty(m_AssemblyName))
+ {
+ m_AssemblyName = m_Name;
+ }
- m_FullPath = m_Path;
- try
- {
- m_FullPath = Helper.ResolvePath(m_FullPath);
- }
- catch
- {
- throw new WarningException("Could not resolve Solution path: {0}", m_Path);
- }
+ if (string.IsNullOrEmpty(m_RootNamespace))
+ {
+ m_RootNamespace = m_Name;
+ }
- Kernel.Instance.CurrentWorkingDirectory.Push();
- try
- {
- Helper.SetCurrentDir(m_FullPath);
+ m_FullPath = m_Path;
+ try
+ {
+ m_FullPath = Helper.ResolvePath(m_FullPath);
+ }
+ catch
+ {
+ throw new WarningException("Could not resolve Solution path: {0}", m_Path);
+ }
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ Kernel.Instance.CurrentWorkingDirectory.Push();
+ try
+ {
+ Helper.SetCurrentDir(m_FullPath);
- foreach(XmlNode child in node.ChildNodes)
- {
- IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
- if(dataNode is ConfigurationNode)
- {
- HandleConfiguration((ConfigurationNode)dataNode);
- }
- else if(dataNode is ReferencePathNode)
- {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
+ if (dataNode is ConfigurationNode)
+ {
+ HandleConfiguration((ConfigurationNode)dataNode);
+ }
+ else if (dataNode is ReferencePathNode)
+ {
m_ReferencePaths.Add((ReferencePathNode)dataNode);
- }
- else if(dataNode is ReferenceNode)
- {
+ }
+ else if (dataNode is ReferenceNode)
+ {
m_References.Add((ReferenceNode)dataNode);
- }
- else if(dataNode is PackageReferenceNode)
- {
+ }
+ else if (dataNode is PackageReferenceNode)
+ {
m_PackageReferences.Add((PackageReferenceNode)dataNode);
- }
- else if(dataNode is ProjectReferenceNode)
- {
+ }
+ else if (dataNode is ProjectReferenceNode)
+ {
m_ProjectReferences.Add((ProjectReferenceNode)dataNode);
- }
- else if(dataNode is AuthorNode)
- {
+ }
+ else if (dataNode is AuthorNode)
+ {
m_Authors.Add((AuthorNode)dataNode);
- }
- else if(dataNode is FilesNode)
- {
- m_Files = (FilesNode)dataNode;
- }
- }
- }
- finally
- {
- Kernel.Instance.CurrentWorkingDirectory.Pop();
- }
- }
+ }
+ else if (dataNode is FilesNode)
+ {
+ m_Files = (FilesNode)dataNode;
+ }
+ }
+ }
+ finally
+ {
+ Kernel.Instance.CurrentWorkingDirectory.Pop();
+ }
+ }
- #endregion
+ #endregion
#region IComparable Members
@@ -659,6 +659,6 @@ namespace Prebuild.Core.Nodes
return m_Name.CompareTo(that.m_Name);
}
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ProjectReferenceNode.cs b/Prebuild/src/Core/Nodes/ProjectReferenceNode.cs
index 76f6c27599..40a3d549a0 100755
--- a/Prebuild/src/Core/Nodes/ProjectReferenceNode.cs
+++ b/Prebuild/src/Core/Nodes/ProjectReferenceNode.cs
@@ -32,60 +32,60 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("ProjectReference")]
- public class ProjectReferenceNode : DataNode, IComparable
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("ProjectReference")]
+ public class ProjectReferenceNode : DataNode, IComparable
+ {
+ #region Fields
- private string m_Name = "unknown";
- private string m_Include;
+ private string m_Name = "unknown";
+ private string m_Include;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Include
- {
- get
- {
- return m_Include;
- }
- }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Include
+ {
+ get
+ {
+ return m_Include;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- m_Include = Helper.AttributeValue(node, "include", m_Include);
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ m_Include = Helper.AttributeValue(node, "include", m_Include);
+ }
- #endregion
+ #endregion
#region IComparable Members
@@ -96,5 +96,5 @@ namespace Prebuild.Core.Nodes
}
#endregion
- }
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ReferenceNode.cs b/Prebuild/src/Core/Nodes/ReferenceNode.cs
index 9c5d1a3491..30f44b91aa 100644
--- a/Prebuild/src/Core/Nodes/ReferenceNode.cs
+++ b/Prebuild/src/Core/Nodes/ReferenceNode.cs
@@ -32,104 +32,104 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Reference")]
- public class ReferenceNode : DataNode, IComparable
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("Reference")]
+ public class ReferenceNode : DataNode, IComparable
+ {
+ #region Fields
- private string m_Name = "unknown";
- private string m_Path;
- private string m_LocalCopy;
- private string m_Version;
+ private string m_Name = "unknown";
+ private string m_Path;
+ private string m_LocalCopy;
+ private string m_Version;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- ///
- /// Gets a value indicating whether [local copy specified].
- ///
- /// true if [local copy specified]; otherwise, false.
- public bool LocalCopySpecified
- {
- get
- {
- return ( m_LocalCopy != null && m_LocalCopy.Length == 0);
- }
- }
+ ///
+ /// Gets a value indicating whether [local copy specified].
+ ///
+ /// true if [local copy specified]; otherwise, false.
+ public bool LocalCopySpecified
+ {
+ get
+ {
+ return (m_LocalCopy != null && m_LocalCopy.Length == 0);
+ }
+ }
- ///
- /// Gets a value indicating whether [local copy].
- ///
- /// true if [local copy]; otherwise, false.
- public bool LocalCopy
- {
- get
- {
- if( m_LocalCopy == null)
- {
- return false;
- }
- return bool.Parse(m_LocalCopy);
- }
- }
+ ///
+ /// Gets a value indicating whether [local copy].
+ ///
+ /// true if [local copy]; otherwise, false.
+ public bool LocalCopy
+ {
+ get
+ {
+ if (m_LocalCopy == null)
+ {
+ return false;
+ }
+ return bool.Parse(m_LocalCopy);
+ }
+ }
- ///
- /// Gets the version.
- ///
- /// The version.
- public string Version
- {
- get
- {
- return m_Version;
- }
- }
+ ///
+ /// Gets the version.
+ ///
+ /// The version.
+ public string Version
+ {
+ get
+ {
+ return m_Version;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- m_Path = Helper.AttributeValue(node, "path", m_Path);
- m_LocalCopy = Helper.AttributeValue(node, "localCopy", m_LocalCopy);
- m_Version = Helper.AttributeValue(node, "version", m_Version);
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ m_Path = Helper.AttributeValue(node, "path", m_Path);
+ m_LocalCopy = Helper.AttributeValue(node, "localCopy", m_LocalCopy);
+ m_Version = Helper.AttributeValue(node, "version", m_Version);
+ }
- #endregion
+ #endregion
#region IComparable Members
@@ -140,5 +140,5 @@ namespace Prebuild.Core.Nodes
}
#endregion
- }
+ }
}
diff --git a/Prebuild/src/Core/Nodes/ReferencePathNode.cs b/Prebuild/src/Core/Nodes/ReferencePathNode.cs
index 7331cd7b58..fb511ce0ed 100644
--- a/Prebuild/src/Core/Nodes/ReferencePathNode.cs
+++ b/Prebuild/src/Core/Nodes/ReferencePathNode.cs
@@ -32,57 +32,57 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("ReferencePath")]
- public class ReferencePathNode : DataNode, IComparable
- {
- #region Fields
+ ///
+ ///
+ ///
+ [DataNode("ReferencePath")]
+ public class ReferencePathNode : DataNode, IComparable
+ {
+ #region Fields
- private string m_Path;
+ private string m_Path;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
- m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
- if(m_Path == null)
- {
- m_Path = "";
- }
+ m_Path = Helper.InterpolateForEnvironmentVariables(node.InnerText);
+ if (m_Path == null)
+ {
+ m_Path = "";
+ }
- m_Path = m_Path.Trim();
- }
+ m_Path = m_Path.Trim();
+ }
- #endregion
+ #endregion
#region IComparable Members
@@ -93,5 +93,5 @@ namespace Prebuild.Core.Nodes
}
#endregion
- }
+ }
}
diff --git a/Prebuild/src/Core/Nodes/SolutionNode.cs b/Prebuild/src/Core/Nodes/SolutionNode.cs
index 10c02234da..6375386a14 100644
--- a/Prebuild/src/Core/Nodes/SolutionNode.cs
+++ b/Prebuild/src/Core/Nodes/SolutionNode.cs
@@ -34,35 +34,35 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes
{
- ///
- ///
- ///
- [DataNode("Solution")]
+ ///
+ ///
+ ///
+ [DataNode("Solution")]
[DataNode("EmbeddedSolution")]
[DebuggerDisplay("{Name}")]
- public class SolutionNode : DataNode
- {
- #region Fields
+ public class SolutionNode : DataNode
+ {
+ #region Fields
private Guid m_Guid = Guid.NewGuid();
- private string m_Name = "unknown";
- private string m_Path = "";
- private string m_FullPath = "";
- private string m_ActiveConfig;
+ private string m_Name = "unknown";
+ private string m_Path = "";
+ private string m_FullPath = "";
+ private string m_ActiveConfig;
private string m_Version = "1.0.0";
-
- private OptionsNode m_Options;
- private FilesNode m_Files;
+
+ private OptionsNode m_Options;
+ private FilesNode m_Files;
private readonly ConfigurationNodeCollection m_Configurations = new ConfigurationNodeCollection();
private readonly Dictionary m_Projects = new Dictionary();
private readonly Dictionary m_DatabaseProjects = new Dictionary();
private readonly List m_ProjectsOrder = new List();
private readonly Dictionary m_Solutions = new Dictionary();
- private CleanupNode m_Cleanup;
+ private CleanupNode m_Cleanup;
- #endregion
+ #endregion
- #region Properties
+ #region Properties
public override IDataNode Parent
{
get
@@ -76,7 +76,7 @@ namespace Prebuild.Core.Nodes
SolutionNode solution = (SolutionNode)value;
foreach (ConfigurationNode conf in solution.Configurations)
{
- m_Configurations[conf.Name] = (ConfigurationNode) conf.Clone();
+ m_Configurations[conf.Name] = (ConfigurationNode)conf.Clone();
}
}
@@ -84,142 +84,142 @@ namespace Prebuild.Core.Nodes
}
}
- public CleanupNode Cleanup
- {
- get
- {
- return m_Cleanup;
- }
+ public CleanupNode Cleanup
+ {
+ get
+ {
+ return m_Cleanup;
+ }
set
{
m_Cleanup = value;
}
- }
+ }
public Guid Guid
{
- get
- {
- return m_Guid;
+ get
+ {
+ return m_Guid;
}
set
{
- m_Guid = value;
+ m_Guid = value;
+ }
+ }
+ ///
+ /// Gets or sets the active config.
+ ///
+ /// The active config.
+ public string ActiveConfig
+ {
+ get
+ {
+ return m_ActiveConfig;
+ }
+ set
+ {
+ m_ActiveConfig = value;
}
}
- ///
- /// Gets or sets the active config.
- ///
- /// The active config.
- public string ActiveConfig
- {
- get
- {
- return m_ActiveConfig;
- }
- set
- {
- m_ActiveConfig = value;
- }
- }
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return m_Name;
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return m_Name;
+ }
+ }
- ///
- /// Gets the path.
- ///
- /// The path.
- public string Path
- {
- get
- {
- return m_Path;
- }
- }
+ ///
+ /// Gets the path.
+ ///
+ /// The path.
+ public string Path
+ {
+ get
+ {
+ return m_Path;
+ }
+ }
- ///
- /// Gets the full path.
- ///
- /// The full path.
- public string FullPath
- {
- get
- {
- return m_FullPath;
- }
- }
+ ///
+ /// Gets the full path.
+ ///
+ /// The full path.
+ public string FullPath
+ {
+ get
+ {
+ return m_FullPath;
+ }
+ }
- ///
- /// Gets the version.
- ///
- /// The version.
- public string Version
- {
- get
- {
- return m_Version;
- }
- }
+ ///
+ /// Gets the version.
+ ///
+ /// The version.
+ public string Version
+ {
+ get
+ {
+ return m_Version;
+ }
+ }
- ///
- /// Gets the options.
- ///
- /// The options.
- public OptionsNode Options
- {
- get
- {
- return m_Options;
- }
- }
+ ///
+ /// Gets the options.
+ ///
+ /// The options.
+ public OptionsNode Options
+ {
+ get
+ {
+ return m_Options;
+ }
+ }
- ///
- /// Gets the files.
- ///
- /// The files.
- public FilesNode Files
- {
- get
- {
- return m_Files;
- }
- }
+ ///
+ /// Gets the files.
+ ///
+ /// The files.
+ public FilesNode Files
+ {
+ get
+ {
+ return m_Files;
+ }
+ }
- ///
- /// Gets the configurations.
- ///
- /// The configurations.
- public ConfigurationNodeCollection Configurations
- {
- get
- {
- ConfigurationNodeCollection tmp = new ConfigurationNodeCollection();
- tmp.AddRange(ConfigurationsTable);
- return tmp;
- }
- }
+ ///
+ /// Gets the configurations.
+ ///
+ /// The configurations.
+ public ConfigurationNodeCollection Configurations
+ {
+ get
+ {
+ ConfigurationNodeCollection tmp = new ConfigurationNodeCollection();
+ tmp.AddRange(ConfigurationsTable);
+ return tmp;
+ }
+ }
- ///
- /// Gets the configurations table.
- ///
- /// The configurations table.
- public ConfigurationNodeCollection ConfigurationsTable
- {
- get
- {
- return m_Configurations;
- }
- }
+ ///
+ /// Gets the configurations table.
+ ///
+ /// The configurations table.
+ public ConfigurationNodeCollection ConfigurationsTable
+ {
+ get
+ {
+ return m_Configurations;
+ }
+ }
///
/// Gets the database projects.
///
@@ -250,109 +250,109 @@ namespace Prebuild.Core.Nodes
return m_Solutions;
}
}
- ///
- /// Gets the projects.
- ///
- /// The projects.
- public ICollection Projects
- {
- get
- {
+ ///
+ /// Gets the projects.
+ ///
+ /// The projects.
+ public ICollection Projects
+ {
+ get
+ {
List tmp = new List(m_Projects.Values);
tmp.Sort();
return tmp;
- }
- }
+ }
+ }
- ///
- /// Gets the projects table.
- ///
- /// The projects table.
- public Dictionary ProjectsTable
- {
- get
- {
- return m_Projects;
- }
- }
+ ///
+ /// Gets the projects table.
+ ///
+ /// The projects table.
+ public Dictionary ProjectsTable
+ {
+ get
+ {
+ return m_Projects;
+ }
+ }
- ///
- /// Gets the projects table.
- ///
- /// The projects table.
- public List ProjectsTableOrder
- {
- get
- {
- return m_ProjectsOrder;
- }
- }
+ ///
+ /// Gets the projects table.
+ ///
+ /// The projects table.
+ public List ProjectsTableOrder
+ {
+ get
+ {
+ return m_ProjectsOrder;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Parses the specified node.
- ///
- /// The node.
- public override void Parse(XmlNode node)
- {
- m_Name = Helper.AttributeValue(node, "name", m_Name);
- m_ActiveConfig = Helper.AttributeValue(node, "activeConfig", m_ActiveConfig);
- m_Path = Helper.AttributeValue(node, "path", m_Path);
- m_Version = Helper.AttributeValue(node, "version", m_Version);
+ ///
+ /// Parses the specified node.
+ ///
+ /// The node.
+ public override void Parse(XmlNode node)
+ {
+ m_Name = Helper.AttributeValue(node, "name", m_Name);
+ m_ActiveConfig = Helper.AttributeValue(node, "activeConfig", m_ActiveConfig);
+ m_Path = Helper.AttributeValue(node, "path", m_Path);
+ m_Version = Helper.AttributeValue(node, "version", m_Version);
- m_FullPath = m_Path;
- try
- {
- m_FullPath = Helper.ResolvePath(m_FullPath);
- }
- catch
- {
- throw new WarningException("Could not resolve solution path: {0}", m_Path);
- }
+ m_FullPath = m_Path;
+ try
+ {
+ m_FullPath = Helper.ResolvePath(m_FullPath);
+ }
+ catch
+ {
+ throw new WarningException("Could not resolve solution path: {0}", m_Path);
+ }
- Kernel.Instance.CurrentWorkingDirectory.Push();
- try
- {
- Helper.SetCurrentDir(m_FullPath);
+ Kernel.Instance.CurrentWorkingDirectory.Push();
+ try
+ {
+ Helper.SetCurrentDir(m_FullPath);
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
- foreach(XmlNode child in node.ChildNodes)
- {
- IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
- if(dataNode is OptionsNode)
- {
- m_Options = (OptionsNode)dataNode;
- }
- else if(dataNode is FilesNode)
- {
- m_Files = (FilesNode)dataNode;
- }
- else if(dataNode is ConfigurationNode)
- {
- ConfigurationNode configurationNode = (ConfigurationNode) dataNode;
- m_Configurations[configurationNode.NameAndPlatform] = configurationNode;
-
- // If the active configuration is null, then we populate it.
- if (ActiveConfig == null)
- {
- ActiveConfig = configurationNode.Name;
- }
- }
- else if(dataNode is ProjectNode)
- {
- m_Projects[((ProjectNode)dataNode).Name] = (ProjectNode) dataNode;
- m_ProjectsOrder.Add((ProjectNode)dataNode);
- }
- else if(dataNode is SolutionNode)
+ foreach (XmlNode child in node.ChildNodes)
+ {
+ IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
+ if (dataNode is OptionsNode)
{
- m_Solutions[((SolutionNode)dataNode).Name] = (SolutionNode) dataNode;
+ m_Options = (OptionsNode)dataNode;
+ }
+ else if (dataNode is FilesNode)
+ {
+ m_Files = (FilesNode)dataNode;
+ }
+ else if (dataNode is ConfigurationNode)
+ {
+ ConfigurationNode configurationNode = (ConfigurationNode)dataNode;
+ m_Configurations[configurationNode.NameAndPlatform] = configurationNode;
+
+ // If the active configuration is null, then we populate it.
+ if (ActiveConfig == null)
+ {
+ ActiveConfig = configurationNode.Name;
+ }
+ }
+ else if (dataNode is ProjectNode)
+ {
+ m_Projects[((ProjectNode)dataNode).Name] = (ProjectNode)dataNode;
+ m_ProjectsOrder.Add((ProjectNode)dataNode);
+ }
+ else if (dataNode is SolutionNode)
+ {
+ m_Solutions[((SolutionNode)dataNode).Name] = (SolutionNode)dataNode;
}
else if (dataNode is ProcessNode)
{
@@ -361,22 +361,22 @@ namespace Prebuild.Core.Nodes
}
else if (dataNode is DatabaseProjectNode)
{
- m_DatabaseProjects[((DatabaseProjectNode)dataNode).Name] = (DatabaseProjectNode) dataNode;
+ m_DatabaseProjects[((DatabaseProjectNode)dataNode).Name] = (DatabaseProjectNode)dataNode;
}
- else if(dataNode is CleanupNode)
+ else if (dataNode is CleanupNode)
{
- if(m_Cleanup != null)
+ if (m_Cleanup != null)
throw new WarningException("There can only be one Cleanup node.");
m_Cleanup = (CleanupNode)dataNode;
}
- }
- }
- finally
- {
- Kernel.Instance.CurrentWorkingDirectory.Pop();
- }
- }
+ }
+ }
+ finally
+ {
+ Kernel.Instance.CurrentWorkingDirectory.Pop();
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Parse/IfContext.cs b/Prebuild/src/Core/Parse/IfContext.cs
index 3c79d38b06..407c64913c 100644
--- a/Prebuild/src/Core/Parse/IfContext.cs
+++ b/Prebuild/src/Core/Parse/IfContext.cs
@@ -27,128 +27,128 @@ using System;
namespace Prebuild.Core.Parse
{
- ///
- ///
- ///
- public enum IfState
- {
- ///
- ///
- ///
- None,
- ///
- ///
- ///
- If,
- ///
- ///
- ///
- ElseIf,
- ///
- ///
- ///
- Else
- }
+ ///
+ ///
+ ///
+ public enum IfState
+ {
+ ///
+ ///
+ ///
+ None,
+ ///
+ ///
+ ///
+ If,
+ ///
+ ///
+ ///
+ ElseIf,
+ ///
+ ///
+ ///
+ Else
+ }
- ///
- /// Summary description for IfContext.
- ///
- // Inspired by the equivalent WiX class (see www.sourceforge.net/projects/wix/)
- public class IfContext
- {
- #region Properties
+ ///
+ /// Summary description for IfContext.
+ ///
+ // Inspired by the equivalent WiX class (see www.sourceforge.net/projects/wix/)
+ public class IfContext
+ {
+ #region Properties
- bool m_Active;
- bool m_Keep;
- bool m_EverKept;
- IfState m_State = IfState.None;
+ bool m_Active;
+ bool m_Keep;
+ bool m_EverKept;
+ IfState m_State = IfState.None;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- /// if set to true [active].
- /// if set to true [keep].
- /// The state.
- public IfContext(bool active, bool keep, IfState state)
- {
- m_Active = active;
- m_Keep = keep;
- m_EverKept = keep;
- m_State = state;
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// if set to true [active].
+ /// if set to true [keep].
+ /// The state.
+ public IfContext(bool active, bool keep, IfState state)
+ {
+ m_Active = active;
+ m_Keep = keep;
+ m_EverKept = keep;
+ m_State = state;
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets or sets a value indicating whether this is active.
- ///
- /// true if active; otherwise, false.
- public bool Active
- {
- get
- {
- return m_Active;
- }
- set
- {
- m_Active = value;
- }
- }
+ ///
+ /// Gets or sets a value indicating whether this is active.
+ ///
+ /// true if active; otherwise, false.
+ public bool Active
+ {
+ get
+ {
+ return m_Active;
+ }
+ set
+ {
+ m_Active = value;
+ }
+ }
- ///
- /// Gets or sets a value indicating whether this is keep.
- ///
- /// true if keep; otherwise, false.
- public bool Keep
- {
- get
- {
- return m_Keep;
- }
- set
- {
- m_Keep = value;
- if(m_Keep)
- {
- m_EverKept = true;
- }
- }
- }
+ ///
+ /// Gets or sets a value indicating whether this is keep.
+ ///
+ /// true if keep; otherwise, false.
+ public bool Keep
+ {
+ get
+ {
+ return m_Keep;
+ }
+ set
+ {
+ m_Keep = value;
+ if (m_Keep)
+ {
+ m_EverKept = true;
+ }
+ }
+ }
- ///
- /// Gets a value indicating whether [ever kept].
- ///
- /// true if [ever kept]; otherwise, false.
- public bool EverKept
- {
- get
- {
- return m_EverKept;
- }
- }
+ ///
+ /// Gets a value indicating whether [ever kept].
+ ///
+ /// true if [ever kept]; otherwise, false.
+ public bool EverKept
+ {
+ get
+ {
+ return m_EverKept;
+ }
+ }
- ///
- /// Gets or sets the state.
- ///
- /// The state.
- public IfState State
- {
- get
- {
- return m_State;
- }
- set
- {
- m_State = value;
- }
- }
+ ///
+ /// Gets or sets the state.
+ ///
+ /// The state.
+ public IfState State
+ {
+ get
+ {
+ return m_State;
+ }
+ set
+ {
+ m_State = value;
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Parse/Preprocessor.cs b/Prebuild/src/Core/Parse/Preprocessor.cs
index 0648fad8d8..ddae69da08 100644
--- a/Prebuild/src/Core/Parse/Preprocessor.cs
+++ b/Prebuild/src/Core/Parse/Preprocessor.cs
@@ -31,336 +31,336 @@ using System.Xml;
namespace Prebuild.Core.Parse
{
- ///
- ///
- ///
- public enum OperatorSymbol
- {
- ///
- ///
- ///
- None,
- ///
- ///
- ///
- Equal,
- ///
- ///
- ///
- NotEqual,
- ///
- ///
- ///
- LessThan,
- ///
- ///
- ///
- GreaterThan,
- ///
- ///
- ///
- LessThanEqual,
- ///
- ///
- ///
- GreaterThanEqual
- }
+ ///
+ ///
+ ///
+ public enum OperatorSymbol
+ {
+ ///
+ ///
+ ///
+ None,
+ ///
+ ///
+ ///
+ Equal,
+ ///
+ ///
+ ///
+ NotEqual,
+ ///
+ ///
+ ///
+ LessThan,
+ ///
+ ///
+ ///
+ GreaterThan,
+ ///
+ ///
+ ///
+ LessThanEqual,
+ ///
+ ///
+ ///
+ GreaterThanEqual
+ }
- ///
- ///
- ///
- public class Preprocessor
- {
- #region Constants
+ ///
+ ///
+ ///
+ public class Preprocessor
+ {
+ #region Constants
- ///
- /// Includes the regex to look for file tags in the processing instruction.
- ///
- private static readonly Regex includeFileRegex = new Regex("file=\"(.+?)\"");
+ ///
+ /// Includes the regex to look for file tags in the processing instruction.
+ ///
+ private static readonly Regex includeFileRegex = new Regex("file=\"(.+?)\"");
- #endregion
+ #endregion
- #region Fields
+ #region Fields
- readonly XmlDocument m_OutDoc = new XmlDocument();
- readonly Stack m_IfStack = new Stack();
- readonly Dictionary m_Variables = new Dictionary();
+ readonly XmlDocument m_OutDoc = new XmlDocument();
+ readonly Stack m_IfStack = new Stack();
+ readonly Dictionary m_Variables = new Dictionary();
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public Preprocessor()
- {
- RegisterVariable("OS", GetOS());
- RegisterVariable("RuntimeVersion", Environment.Version.Major);
- RegisterVariable("RuntimeMajor", Environment.Version.Major);
- RegisterVariable("RuntimeMinor", Environment.Version.Minor);
- RegisterVariable("RuntimeRevision", Environment.Version.Revision);
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public Preprocessor()
+ {
+ RegisterVariable("OS", GetOS());
+ RegisterVariable("RuntimeVersion", Environment.Version.Major);
+ RegisterVariable("RuntimeMajor", Environment.Version.Major);
+ RegisterVariable("RuntimeMinor", Environment.Version.Minor);
+ RegisterVariable("RuntimeRevision", Environment.Version.Revision);
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the processed doc.
- ///
- /// The processed doc.
- public XmlDocument ProcessedDoc
- {
- get
- {
- return m_OutDoc;
- }
- }
+ ///
+ /// Gets the processed doc.
+ ///
+ /// The processed doc.
+ public XmlDocument ProcessedDoc
+ {
+ get
+ {
+ return m_OutDoc;
+ }
+ }
- #endregion
+ #endregion
- #region Private Methods
-
- ///
- /// Parts of this code were taken from NAnt and is subject to the GPL
- /// as per NAnt's license. Thanks to the NAnt guys for this little gem.
- ///
- ///
- public static string GetOS()
- {
- PlatformID platId = Environment.OSVersion.Platform;
- if(platId == PlatformID.Win32NT || platId == PlatformID.Win32Windows)
- {
- return "Win32";
- }
+ #region Private Methods
- if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa"))
- {
- return "MACOSX";
- }
+ ///
+ /// Parts of this code were taken from NAnt and is subject to the GPL
+ /// as per NAnt's license. Thanks to the NAnt guys for this little gem.
+ ///
+ ///
+ public static string GetOS()
+ {
+ PlatformID platId = Environment.OSVersion.Platform;
+ if (platId == PlatformID.Win32NT || platId == PlatformID.Win32Windows)
+ {
+ return "Win32";
+ }
- /*
+ if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa"))
+ {
+ return "MACOSX";
+ }
+
+ /*
* .NET 1.x, under Mono, the UNIX code is 128. Under
* .NET 2.x, Mono or MS, the UNIX code is 4
*/
- if(Environment.Version.Major == 1)
- {
- if((int)platId == 128)
- {
- return "UNIX";
- }
- }
- else if((int)platId == 4)
- {
- return "UNIX";
- }
+ if (Environment.Version.Major == 1)
+ {
+ if ((int)platId == 128)
+ {
+ return "UNIX";
+ }
+ }
+ else if ((int)platId == 4)
+ {
+ return "UNIX";
+ }
- return "Unknown";
- }
+ return "Unknown";
+ }
- private static bool CompareNum(OperatorSymbol oper, int val1, int val2)
- {
- switch(oper)
- {
- case OperatorSymbol.Equal:
- return (val1 == val2);
- case OperatorSymbol.NotEqual:
- return (val1 != val2);
- case OperatorSymbol.LessThan:
- return (val1 < val2);
- case OperatorSymbol.LessThanEqual:
- return (val1 <= val2);
- case OperatorSymbol.GreaterThan:
- return (val1 > val2);
- case OperatorSymbol.GreaterThanEqual:
- return (val1 >= val2);
- }
+ private static bool CompareNum(OperatorSymbol oper, int val1, int val2)
+ {
+ switch (oper)
+ {
+ case OperatorSymbol.Equal:
+ return (val1 == val2);
+ case OperatorSymbol.NotEqual:
+ return (val1 != val2);
+ case OperatorSymbol.LessThan:
+ return (val1 < val2);
+ case OperatorSymbol.LessThanEqual:
+ return (val1 <= val2);
+ case OperatorSymbol.GreaterThan:
+ return (val1 > val2);
+ case OperatorSymbol.GreaterThanEqual:
+ return (val1 >= val2);
+ }
- throw new WarningException("Unknown operator type");
- }
+ throw new WarningException("Unknown operator type");
+ }
- private static bool CompareStr(OperatorSymbol oper, string val1, string val2)
- {
- switch(oper)
- {
- case OperatorSymbol.Equal:
- return (val1 == val2);
- case OperatorSymbol.NotEqual:
- return (val1 != val2);
- case OperatorSymbol.LessThan:
- return (val1.CompareTo(val2) < 0);
- case OperatorSymbol.LessThanEqual:
- return (val1.CompareTo(val2) <= 0);
- case OperatorSymbol.GreaterThan:
- return (val1.CompareTo(val2) > 0);
- case OperatorSymbol.GreaterThanEqual:
- return (val1.CompareTo(val2) >= 0);
- }
+ private static bool CompareStr(OperatorSymbol oper, string val1, string val2)
+ {
+ switch (oper)
+ {
+ case OperatorSymbol.Equal:
+ return (val1 == val2);
+ case OperatorSymbol.NotEqual:
+ return (val1 != val2);
+ case OperatorSymbol.LessThan:
+ return (val1.CompareTo(val2) < 0);
+ case OperatorSymbol.LessThanEqual:
+ return (val1.CompareTo(val2) <= 0);
+ case OperatorSymbol.GreaterThan:
+ return (val1.CompareTo(val2) > 0);
+ case OperatorSymbol.GreaterThanEqual:
+ return (val1.CompareTo(val2) >= 0);
+ }
- throw new WarningException("Unknown operator type");
- }
+ throw new WarningException("Unknown operator type");
+ }
- private static char NextChar(int idx, string str)
- {
- if((idx + 1) >= str.Length)
- {
- return Char.MaxValue;
- }
+ private static char NextChar(int idx, string str)
+ {
+ if ((idx + 1) >= str.Length)
+ {
+ return Char.MaxValue;
+ }
- return str[idx + 1];
- }
- // Very very simple expression parser. Can only match expressions of the form
- // :
- // OS = Windows
- // OS != Linux
- // RuntimeMinor > 0
- private bool ParseExpression(string exp)
- {
- if(exp == null)
- {
- throw new ArgumentException("Invalid expression, cannot be null");
- }
+ return str[idx + 1];
+ }
+ // Very very simple expression parser. Can only match expressions of the form
+ // :
+ // OS = Windows
+ // OS != Linux
+ // RuntimeMinor > 0
+ private bool ParseExpression(string exp)
+ {
+ if (exp == null)
+ {
+ throw new ArgumentException("Invalid expression, cannot be null");
+ }
- exp = exp.Trim();
- if(exp.Length < 1)
- {
- throw new ArgumentException("Invalid expression, cannot be 0 length");
- }
+ exp = exp.Trim();
+ if (exp.Length < 1)
+ {
+ throw new ArgumentException("Invalid expression, cannot be 0 length");
+ }
- string id = "";
- string str = "";
- OperatorSymbol oper = OperatorSymbol.None;
- bool inStr = false;
+ string id = "";
+ string str = "";
+ OperatorSymbol oper = OperatorSymbol.None;
+ bool inStr = false;
- for(int i = 0; i < exp.Length; i++)
- {
- char c = exp[i];
- if(Char.IsWhiteSpace(c))
- {
- continue;
- }
+ for (int i = 0; i < exp.Length; i++)
+ {
+ char c = exp[i];
+ if (Char.IsWhiteSpace(c))
+ {
+ continue;
+ }
- if(Char.IsLetterOrDigit(c) || c == '_')
- {
- if(inStr)
- {
- str += c;
- }
- else
- {
- id += c;
- }
- }
- else if(c == '\"')
- {
- inStr = !inStr;
- if(inStr)
- {
- str = "";
- }
- }
- else
- {
- if(inStr)
- {
- str += c;
- }
- else
- {
- switch(c)
- {
- case '=':
- oper = OperatorSymbol.Equal;
- break;
+ if (Char.IsLetterOrDigit(c) || c == '_')
+ {
+ if (inStr)
+ {
+ str += c;
+ }
+ else
+ {
+ id += c;
+ }
+ }
+ else if (c == '\"')
+ {
+ inStr = !inStr;
+ if (inStr)
+ {
+ str = "";
+ }
+ }
+ else
+ {
+ if (inStr)
+ {
+ str += c;
+ }
+ else
+ {
+ switch (c)
+ {
+ case '=':
+ oper = OperatorSymbol.Equal;
+ break;
- case '!':
- if(NextChar(i, exp) == '=')
- {
- oper = OperatorSymbol.NotEqual;
- }
-
- break;
+ case '!':
+ if (NextChar(i, exp) == '=')
+ {
+ oper = OperatorSymbol.NotEqual;
+ }
- case '<':
- if(NextChar(i, exp) == '=')
- {
- oper = OperatorSymbol.LessThanEqual;
- }
- else
- {
- oper = OperatorSymbol.LessThan;
- }
-
- break;
+ break;
- case '>':
- if(NextChar(i, exp) == '=')
- {
- oper = OperatorSymbol.GreaterThanEqual;
- }
- else
- {
- oper = OperatorSymbol.GreaterThan;
- }
+ case '<':
+ if (NextChar(i, exp) == '=')
+ {
+ oper = OperatorSymbol.LessThanEqual;
+ }
+ else
+ {
+ oper = OperatorSymbol.LessThan;
+ }
- break;
- }
- }
- }
- }
+ break;
-
- if(inStr)
- {
- throw new WarningException("Expected end of string in expression");
- }
+ case '>':
+ if (NextChar(i, exp) == '=')
+ {
+ oper = OperatorSymbol.GreaterThanEqual;
+ }
+ else
+ {
+ oper = OperatorSymbol.GreaterThan;
+ }
- if(oper == OperatorSymbol.None)
- {
- throw new WarningException("Expected operator in expression");
- }
- if(id.Length < 1)
- {
- throw new WarningException("Expected identifier in expression");
- }
- if(str.Length < 1)
- {
- throw new WarningException("Expected value in expression");
- }
+ break;
+ }
+ }
+ }
+ }
- bool ret;
- try
- {
- object val = m_Variables[id.ToLower()];
- if(val == null)
- {
- throw new WarningException("Unknown identifier '{0}'", id);
- }
- Type t = val.GetType();
- if(t.IsAssignableFrom(typeof(int)))
- {
- int numVal = (int)val;
- int numVal2 = Int32.Parse(str);
- ret = CompareNum(oper, numVal, numVal2);
- }
- else
- {
- string strVal = val.ToString();
- string strVal2 = str;
- ret = CompareStr(oper, strVal, strVal2);
- }
- }
- catch(ArgumentException ex)
- {
- ex.ToString();
- throw new WarningException("Invalid value type for system variable '{0}', expected int", id);
- }
+ if (inStr)
+ {
+ throw new WarningException("Expected end of string in expression");
+ }
- return ret;
- }
+ if (oper == OperatorSymbol.None)
+ {
+ throw new WarningException("Expected operator in expression");
+ }
+ if (id.Length < 1)
+ {
+ throw new WarningException("Expected identifier in expression");
+ }
+ if (str.Length < 1)
+ {
+ throw new WarningException("Expected value in expression");
+ }
+
+ bool ret;
+ try
+ {
+ object val = m_Variables[id.ToLower()];
+ if (val == null)
+ {
+ throw new WarningException("Unknown identifier '{0}'", id);
+ }
+
+ Type t = val.GetType();
+ if (t.IsAssignableFrom(typeof(int)))
+ {
+ int numVal = (int)val;
+ int numVal2 = Int32.Parse(str);
+ ret = CompareNum(oper, numVal, numVal2);
+ }
+ else
+ {
+ string strVal = val.ToString();
+ string strVal2 = str;
+ ret = CompareStr(oper, strVal, strVal2);
+ }
+ }
+ catch (ArgumentException ex)
+ {
+ ex.ToString();
+ throw new WarningException("Invalid value type for system variable '{0}', expected int", id);
+ }
+
+ return ret;
+ }
///
/// Taken from current Prebuild included in OpenSim 0.7.x
@@ -371,282 +371,297 @@ namespace Prebuild.Core.Parse
///
/// A
///
- private static void WildCardInclude (Stack readerStack, string include)
+ private static void WildCardInclude(Stack readerStack, string include)
{
- if (!include.Contains ("*")) {
+ if (!include.Contains("*"))
+ {
return;
}
-
+
// Console.WriteLine("Processing {0}", include);
-
+
// Break up the include into pre and post wildcard sections
- string preWildcard = include.Substring (0, include.IndexOf ("*"));
- string postWildcard = include.Substring (include.IndexOf ("*") + 2);
-
+ string preWildcard = include.Substring(0, include.IndexOf("*"));
+ string postWildcard = include.Substring(include.IndexOf("*") + 2);
+
// If preWildcard is a directory, recurse
- if (Directory.Exists (preWildcard)) {
- string[] directories = Directory.GetDirectories (preWildcard);
- Array.Sort (directories);
- Array.Reverse (directories);
- foreach (string dirPath in directories) {
+ if (Directory.Exists(preWildcard))
+ {
+ string[] directories = Directory.GetDirectories(preWildcard);
+ Array.Sort(directories);
+ Array.Reverse(directories);
+ foreach (string dirPath in directories)
+ {
//Console.WriteLine ("Scanning : {0}", dirPath);
-
- string includeFile = Path.Combine (dirPath, postWildcard);
- if (includeFile.Contains ("*")) {
+
+ string includeFile = Path.Combine(dirPath, postWildcard);
+ if (includeFile.Contains("*"))
+ {
// postWildcard included another wildcard, recurse.
- WildCardInclude (readerStack, includeFile);
- } else {
- FileInfo file = new FileInfo (includeFile);
- if (file.Exists) {
+ WildCardInclude(readerStack, includeFile);
+ }
+ else
+ {
+ FileInfo file = new FileInfo(includeFile);
+ if (file.Exists)
+ {
//Console.WriteLine ("Including File: {0}", includeFile);
- XmlReader newReader = new XmlTextReader (file.Open (FileMode.Open, FileAccess.Read, FileShare.Read));
- readerStack.Push (newReader);
+ XmlReader newReader = new XmlTextReader(file.Open(FileMode.Open, FileAccess.Read, FileShare.Read));
+ readerStack.Push(newReader);
}
}
}
- } else {
+ }
+ else
+ {
// preWildcard is not a path to a directory, so the wildcard is in the filename
- string searchFilename = Path.GetFileName (preWildcard.Substring (preWildcard.IndexOf ("/") + 1) + "*" + postWildcard);
- Console.WriteLine ("searchFilename: {0}", searchFilename);
-
- string searchDirectory = Path.GetDirectoryName (preWildcard);
- Console.WriteLine ("searchDirectory: {0}", searchDirectory);
-
- string[] files = Directory.GetFiles (searchDirectory, searchFilename);
- Array.Sort (files);
- Array.Reverse (files);
- foreach (string includeFile in files) {
- FileInfo file = new FileInfo (includeFile);
- if (file.Exists) {
+ string searchFilename = Path.GetFileName(preWildcard.Substring(preWildcard.IndexOf("/") + 1) + "*" + postWildcard);
+ Console.WriteLine("searchFilename: {0}", searchFilename);
+
+ string searchDirectory = Path.GetDirectoryName(preWildcard);
+ Console.WriteLine("searchDirectory: {0}", searchDirectory);
+
+ string[] files = Directory.GetFiles(searchDirectory, searchFilename);
+ Array.Sort(files);
+ Array.Reverse(files);
+ foreach (string includeFile in files)
+ {
+ FileInfo file = new FileInfo(includeFile);
+ if (file.Exists)
+ {
// Console.WriteLine ("Including File: {0}", includeFile);
- XmlReader newReader = new XmlTextReader (file.Open (FileMode.Open, FileAccess.Read, FileShare.Read));
- readerStack.Push (newReader);
+ XmlReader newReader = new XmlTextReader(file.Open(FileMode.Open, FileAccess.Read, FileShare.Read));
+ readerStack.Push(newReader);
}
}
}
}
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- ///
- ///
- ///
- ///
- public void RegisterVariable(string name, object variableValue)
- {
- if(name == null || variableValue == null)
- {
- return;
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RegisterVariable(string name, object variableValue)
+ {
+ if (name == null || variableValue == null)
+ {
+ return;
+ }
- m_Variables[name.ToLower()] = variableValue;
- }
+ m_Variables[name.ToLower()] = variableValue;
+ }
- ///
- /// Performs validation on the xml source as well as evaluates conditional and flow expresions
- ///
- /// For invalid use of conditional expressions or for invalid XML syntax. If a XmlValidatingReader is passed, then will also throw exceptions for non-schema-conforming xml
+ ///
+ /// Performs validation on the xml source as well as evaluates conditional and flow expresions
+ ///
+ /// For invalid use of conditional expressions or for invalid XML syntax. If a XmlValidatingReader is passed, then will also throw exceptions for non-schema-conforming xml
///
- /// the output xml
- public string Process(XmlReader initialReader)
- {
- if(initialReader == null)
- {
- throw new ArgumentException("Invalid XML reader to pre-process");
- }
+ /// the output xml
+ public string Process(XmlReader initialReader)
+ {
+ if (initialReader == null)
+ {
+ throw new ArgumentException("Invalid XML reader to pre-process");
+ }
- IfContext context = new IfContext(true, true, IfState.None);
- StringWriter xmlText = new StringWriter();
- XmlTextWriter writer = new XmlTextWriter(xmlText);
- writer.Formatting = Formatting.Indented;
+ IfContext context = new IfContext(true, true, IfState.None);
+ StringWriter xmlText = new StringWriter();
+ XmlTextWriter writer = new XmlTextWriter(xmlText);
+ writer.Formatting = Formatting.Indented;
- // Create a queue of XML readers and add the initial
- // reader to it. Then we process until we run out of
- // readers which lets the operation add more
- // readers to generate a multi-file parser and not require
- // XML fragments that a recursive version would use.
- Stack readerStack = new Stack();
- readerStack.Push(initialReader);
-
- while(readerStack.Count > 0)
- {
- // Pop off the next reader.
- XmlReader reader = readerStack.Pop();
+ // Create a queue of XML readers and add the initial
+ // reader to it. Then we process until we run out of
+ // readers which lets the operation add more
+ // readers to generate a multi-file parser and not require
+ // XML fragments that a recursive version would use.
+ Stack readerStack = new Stack();
+ readerStack.Push(initialReader);
- // Process through this XML reader until it is
- // completed (or it is replaced by the include
- // operation).
- while(reader.Read())
- {
- // The prebuild file has a series of processing
- // instructions which allow for specific
- // inclusions based on operating system or to
- // include additional files.
- if(reader.NodeType == XmlNodeType.ProcessingInstruction)
- {
- bool ignore = false;
+ while (readerStack.Count > 0)
+ {
+ // Pop off the next reader.
+ XmlReader reader = readerStack.Pop();
- switch(reader.LocalName)
- {
- case "include":
- // use regular expressions to parse out the attributes.
- MatchCollection matches = includeFileRegex.Matches(reader.Value);
+ // Process through this XML reader until it is
+ // completed (or it is replaced by the include
+ // operation).
+ while (reader.Read())
+ {
+ // The prebuild file has a series of processing
+ // instructions which allow for specific
+ // inclusions based on operating system or to
+ // include additional files.
+ if (reader.NodeType == XmlNodeType.ProcessingInstruction)
+ {
+ bool ignore = false;
- // make sure there is only one file attribute.
- if(matches.Count > 1)
- {
- throw new WarningException("An node was found, but it specified more than one file.");
- }
+ switch (reader.LocalName)
+ {
+ case "include":
+ // use regular expressions to parse out the attributes.
+ MatchCollection matches = includeFileRegex.Matches(reader.Value);
- if(matches.Count == 0)
- {
- throw new WarningException("An node was found, but it did not specify the file attribute.");
- }
+ // make sure there is only one file attribute.
+ if (matches.Count > 1)
+ {
+ throw new WarningException("An node was found, but it specified more than one file.");
+ }
+
+ if (matches.Count == 0)
+ {
+ throw new WarningException("An node was found, but it did not specify the file attribute.");
+ }
// ***** Adding for wildcard handling
// Push current reader back onto the stack.
- readerStack.Push (reader);
-
+ readerStack.Push(reader);
+
// Pull the file out from the regex and make sure it is a valid file before using it.
string filename = matches[0].Groups[1].Value;
-
- filename = String.Join (Path.DirectorySeparatorChar.ToString (), filename.Split (new char[] { '/', '\\' }));
-
- if (!filename.Contains ("*")) {
-
- FileInfo includeFile = new FileInfo (filename);
- if (!includeFile.Exists) {
- throw new WarningException ("Cannot include file: " + includeFile.FullName);
+
+ filename = String.Join(Path.DirectorySeparatorChar.ToString(), filename.Split(new char[] { '/', '\\' }));
+
+ if (!filename.Contains("*"))
+ {
+
+ FileInfo includeFile = new FileInfo(filename);
+ if (!includeFile.Exists)
+ {
+ throw new WarningException("Cannot include file: " + includeFile.FullName);
}
-
+
// Create a new reader object for this file. Then put the old reader back on the stack and start
// processing using this new XML reader.
-
- XmlReader newReader = new XmlTextReader (includeFile.Open (FileMode.Open, FileAccess.Read, FileShare.Read));
+
+ XmlReader newReader = new XmlTextReader(includeFile.Open(FileMode.Open, FileAccess.Read, FileShare.Read));
reader = newReader;
- readerStack.Push (reader);
-
- } else {
- WildCardInclude (readerStack, filename);
+ readerStack.Push(reader);
+
}
-
- reader = (XmlReader)readerStack.Pop ();
+ else
+ {
+ WildCardInclude(readerStack, filename);
+ }
+
+ reader = (XmlReader)readerStack.Pop();
ignore = true;
break;
- case "if":
- m_IfStack.Push(context);
- context = new IfContext(context.Keep & context.Active, ParseExpression(reader.Value), IfState.If);
- ignore = true;
- break;
+ case "if":
+ m_IfStack.Push(context);
+ context = new IfContext(context.Keep & context.Active, ParseExpression(reader.Value), IfState.If);
+ ignore = true;
+ break;
- case "elseif":
- if(m_IfStack.Count == 0)
- {
- throw new WarningException("Unexpected 'elseif' outside of 'if'");
- }
- if(context.State != IfState.If && context.State != IfState.ElseIf)
- {
- throw new WarningException("Unexpected 'elseif' outside of 'if'");
- }
+ case "elseif":
+ if (m_IfStack.Count == 0)
+ {
+ throw new WarningException("Unexpected 'elseif' outside of 'if'");
+ }
+ if (context.State != IfState.If && context.State != IfState.ElseIf)
+ {
+ throw new WarningException("Unexpected 'elseif' outside of 'if'");
+ }
- context.State = IfState.ElseIf;
- if(!context.EverKept)
- {
- context.Keep = ParseExpression(reader.Value);
- }
- else
- {
- context.Keep = false;
- }
+ context.State = IfState.ElseIf;
+ if (!context.EverKept)
+ {
+ context.Keep = ParseExpression(reader.Value);
+ }
+ else
+ {
+ context.Keep = false;
+ }
- ignore = true;
- break;
+ ignore = true;
+ break;
- case "else":
- if(m_IfStack.Count == 0)
- {
- throw new WarningException("Unexpected 'else' outside of 'if'");
- }
- if(context.State != IfState.If && context.State != IfState.ElseIf)
- {
- throw new WarningException("Unexpected 'else' outside of 'if'");
- }
+ case "else":
+ if (m_IfStack.Count == 0)
+ {
+ throw new WarningException("Unexpected 'else' outside of 'if'");
+ }
+ if (context.State != IfState.If && context.State != IfState.ElseIf)
+ {
+ throw new WarningException("Unexpected 'else' outside of 'if'");
+ }
- context.State = IfState.Else;
- context.Keep = !context.EverKept;
- ignore = true;
- break;
+ context.State = IfState.Else;
+ context.Keep = !context.EverKept;
+ ignore = true;
+ break;
- case "endif":
- if(m_IfStack.Count == 0)
- {
- throw new WarningException("Unexpected 'endif' outside of 'if'");
- }
+ case "endif":
+ if (m_IfStack.Count == 0)
+ {
+ throw new WarningException("Unexpected 'endif' outside of 'if'");
+ }
- context = m_IfStack.Pop();
- ignore = true;
- break;
- }
+ context = m_IfStack.Pop();
+ ignore = true;
+ break;
+ }
- if(ignore)
- {
- continue;
- }
- }//end pre-proc instruction
+ if (ignore)
+ {
+ continue;
+ }
+ }//end pre-proc instruction
- if(!context.Active || !context.Keep)
- {
- continue;
- }
+ if (!context.Active || !context.Keep)
+ {
+ continue;
+ }
- switch(reader.NodeType)
- {
- case XmlNodeType.Element:
- bool empty = reader.IsEmptyElement;
- writer.WriteStartElement(reader.Name);
+ switch (reader.NodeType)
+ {
+ case XmlNodeType.Element:
+ bool empty = reader.IsEmptyElement;
+ writer.WriteStartElement(reader.Name);
- while (reader.MoveToNextAttribute())
- {
- writer.WriteAttributeString(reader.Name, reader.Value);
- }
+ while (reader.MoveToNextAttribute())
+ {
+ writer.WriteAttributeString(reader.Name, reader.Value);
+ }
- if(empty)
- {
- writer.WriteEndElement();
- }
-
- break;
+ if (empty)
+ {
+ writer.WriteEndElement();
+ }
- case XmlNodeType.EndElement:
- writer.WriteEndElement();
- break;
+ break;
- case XmlNodeType.Text:
- writer.WriteString(reader.Value);
- break;
+ case XmlNodeType.EndElement:
+ writer.WriteEndElement();
+ break;
- case XmlNodeType.CDATA:
- writer.WriteCData(reader.Value);
- break;
+ case XmlNodeType.Text:
+ writer.WriteString(reader.Value);
+ break;
- default:
- break;
- }
- }
+ case XmlNodeType.CDATA:
+ writer.WriteCData(reader.Value);
+ break;
- if(m_IfStack.Count != 0)
- {
- throw new WarningException("Mismatched 'if', 'endif' pair");
- }
- }
-
- return xmlText.ToString();
- }
+ default:
+ break;
+ }
+ }
- #endregion
- }
+ if (m_IfStack.Count != 0)
+ {
+ throw new WarningException("Mismatched 'if', 'endif' pair");
+ }
+ }
+
+ return xmlText.ToString();
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/AutotoolsTarget.cs b/Prebuild/src/Core/Targets/AutotoolsTarget.cs
index 485e4dd724..14f0e03415 100644
--- a/Prebuild/src/Core/Targets/AutotoolsTarget.cs
+++ b/Prebuild/src/Core/Targets/AutotoolsTarget.cs
@@ -498,9 +498,9 @@ namespace Prebuild.Core.Targets
foreach (ProjectNode project in solution.ProjectsTableOrder)
{
- m_Kernel.Log.Write(String.Format("Writing project: {0}",
- project.Name));
- WriteProject(solution, project);
+ m_Kernel.Log.Write(String.Format("Writing project: {0}",
+ project.Name));
+ WriteProject(solution, project);
}
}
@@ -509,12 +509,13 @@ namespace Prebuild.Core.Targets
{
foreach (ReferencePathNode refPath in project.ReferencePaths)
{
- string fullPath =
- Helper.MakeFilePath(refPath.Path, refName, "dll");
+ string fullPath =
+ Helper.MakeFilePath(refPath.Path, refName, "dll");
- if (File.Exists(fullPath)) {
- return fullPath;
- }
+ if (File.Exists(fullPath))
+ {
+ return fullPath;
+ }
}
return null;
@@ -650,21 +651,24 @@ namespace Prebuild.Core.Targets
string tempAssemblyFile = Path.Combine(Path.GetTempPath(), project.Name + "-temp.dll");
System.CodeDom.Compiler.CompilerParameters cparam =
new System.CodeDom.Compiler.CompilerParameters(args, tempAssemblyFile);
-
+
System.CodeDom.Compiler.CompilerResults cr =
cscp.CompileAssemblyFromFile(cparam, sources);
foreach (System.CodeDom.Compiler.CompilerError error in cr.Errors)
Console.WriteLine("Error! '{0}'", error.ErrorText);
- try {
- string projectFullName = cr.CompiledAssembly.FullName;
- Regex verRegex = new Regex("Version=([\\d\\.]+)");
- Match verMatch = verRegex.Match(projectFullName);
- if (verMatch.Success)
- projectVersion = verMatch.Groups[1].Value;
- }catch{
- Console.WriteLine("Couldn't compile AssemblyInfo.cs");
+ try
+ {
+ string projectFullName = cr.CompiledAssembly.FullName;
+ Regex verRegex = new Regex("Version=([\\d\\.]+)");
+ Match verMatch = verRegex.Match(projectFullName);
+ if (verMatch.Success)
+ projectVersion = verMatch.Groups[1].Value;
+ }
+ catch
+ {
+ Console.WriteLine("Couldn't compile AssemblyInfo.cs");
}
// Clean up the temp file
@@ -673,11 +677,11 @@ namespace Prebuild.Core.Targets
if (File.Exists(tempAssemblyFile))
File.Delete(tempAssemblyFile);
}
- catch
+ catch
{
Console.WriteLine("Error! '{0}'", e);
}
-
+
}
// Tell the user if there's a problem copying the file
@@ -719,7 +723,7 @@ namespace Prebuild.Core.Targets
if (packagesHash.ContainsKey(refr.Name))
{
- package = packagesHash[refr.Name];
+ package = packagesHash[refr.Name];
}
else
@@ -794,32 +798,33 @@ namespace Prebuild.Core.Targets
}
catch (System.IO.IOException)
{
- if (solution.ProjectsTable.ContainsKey(refr.Name)){
+ if (solution.ProjectsTable.ContainsKey(refr.Name))
+ {
- /* If an assembly is referenced, marked for
- * local copy, in the list of projects for
- * this solution, but does not exist, put a
- * target into the Makefile.am to build the
- * assembly and copy it to this project's
- * directory
- */
+ /* If an assembly is referenced, marked for
+ * local copy, in the list of projects for
+ * this solution, but does not exist, put a
+ * target into the Makefile.am to build the
+ * assembly and copy it to this project's
+ * directory
+ */
- ProjectNode sourcePrj =
- ((solution.ProjectsTable[refr.Name]));
+ ProjectNode sourcePrj =
+ ((solution.ProjectsTable[refr.Name]));
- string target =
- String.Format("{0}:\n" +
- "\t$(MAKE) -C ../{1}\n" +
- "\tln ../{2}/$@ $@\n",
- filename,
- sourcePrj.Name,
- sourcePrj.Name );
+ string target =
+ String.Format("{0}:\n" +
+ "\t$(MAKE) -C ../{1}\n" +
+ "\tln ../{2}/$@ $@\n",
+ filename,
+ sourcePrj.Name,
+ sourcePrj.Name);
- localCopyTargets.Add(target);
- }
+ localCopyTargets.Add(target);
+ }
}
}
- else if( !pkgLibs.Contains(refr.Name) )
+ else if (!pkgLibs.Contains(refr.Name))
{
// Else, let's assume it's in the GAC or the lib path
string assemName = string.Empty;
@@ -975,27 +980,29 @@ namespace Prebuild.Core.Targets
Stream autotoolsStream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream(fqStreamName);
- if(autotoolsStream == null) {
+ if (autotoolsStream == null)
+ {
- /*
- * try without the default namespace prepended, in
- * case prebuild.exe assembly was compiled with
- * something other than Visual Studio .NET
- */
+ /*
+ * try without the default namespace prepended, in
+ * case prebuild.exe assembly was compiled with
+ * something other than Visual Studio .NET
+ */
- autotoolsStream = Assembly.GetExecutingAssembly()
- .GetManifestResourceStream(streamName);
- if(autotoolsStream == null){
- string errStr =
- String.Format("Could not find embedded resource file:\n" +
- "'{0}' or '{1}'",
- streamName, fqStreamName
- );
+ autotoolsStream = Assembly.GetExecutingAssembly()
+ .GetManifestResourceStream(streamName);
+ if (autotoolsStream == null)
+ {
+ string errStr =
+ String.Format("Could not find embedded resource file:\n" +
+ "'{0}' or '{1}'",
+ streamName, fqStreamName
+ );
- m_Kernel.Log.Write(errStr);
+ m_Kernel.Log.Write(errStr);
- throw new System.Reflection.TargetException(errStr);
- }
+ throw new System.Reflection.TargetException(errStr);
+ }
}
// Create an XML URL Resolver with default credentials
@@ -1028,9 +1035,9 @@ namespace Prebuild.Core.Targets
foreach (SolutionNode solution in kern.Solutions)
{
- m_Kernel.Log.Write(String.Format("Writing solution: {0}",
- solution.Name));
- WriteCombine(solution);
+ m_Kernel.Log.Write(String.Format("Writing solution: {0}",
+ solution.Name));
+ WriteCombine(solution);
}
m_Kernel = null;
}
diff --git a/Prebuild/src/Core/Targets/MonoDevelopTarget.cs b/Prebuild/src/Core/Targets/MonoDevelopTarget.cs
index ea6d2c2233..9f574bba77 100644
--- a/Prebuild/src/Core/Targets/MonoDevelopTarget.cs
+++ b/Prebuild/src/Core/Targets/MonoDevelopTarget.cs
@@ -35,67 +35,67 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("monodev")]
- public class MonoDevelopTarget : ITarget
- {
- #region Fields
+ ///
+ ///
+ ///
+ [Target("monodev")]
+ public class MonoDevelopTarget : ITarget
+ {
+ #region Fields
- private Kernel m_Kernel;
+ private Kernel m_Kernel;
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- private static string PrependPath(string path)
- {
- string tmpPath = Helper.NormalizePath(path, '/');
- Regex regex = new Regex(@"(\w):/(\w+)");
- Match match = regex.Match(tmpPath);
- if(match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
- {
- tmpPath = Helper.NormalizePath(tmpPath);
- }
- else
- {
- tmpPath = Helper.NormalizePath("./" + tmpPath);
- }
+ private static string PrependPath(string path)
+ {
+ string tmpPath = Helper.NormalizePath(path, '/');
+ Regex regex = new Regex(@"(\w):/(\w+)");
+ Match match = regex.Match(tmpPath);
+ if (match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
+ {
+ tmpPath = Helper.NormalizePath(tmpPath);
+ }
+ else
+ {
+ tmpPath = Helper.NormalizePath("./" + tmpPath);
+ }
- return tmpPath;
- }
+ return tmpPath;
+ }
- private static string BuildReference(SolutionNode solution, ReferenceNode refr)
- {
- string ret = "";
- }
- else
- {
- ProjectNode project = (ProjectNode)refr.Parent;
- string fileRef = FindFileReference(refr.Name, project);
+ private static string BuildReference(SolutionNode solution, ReferenceNode refr)
+ {
+ string ret = "";
+ }
+ else
+ {
+ ProjectNode project = (ProjectNode)refr.Parent;
+ string fileRef = FindFileReference(refr.Name, project);
- if(refr.Path != null || fileRef != null)
- {
- ret += "Assembly\" refto=\"";
+ if (refr.Path != null || fileRef != null)
+ {
+ ret += "Assembly\" refto=\"";
- string finalPath = (refr.Path != null) ? Helper.MakeFilePath(refr.Path, refr.Name, "dll") : fileRef;
+ string finalPath = (refr.Path != null) ? Helper.MakeFilePath(refr.Path, refr.Name, "dll") : fileRef;
- ret += finalPath;
- ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
- return ret;
- }
+ ret += finalPath;
+ ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
+ return ret;
+ }
- ret += "Gac\"";
- ret += " localcopy=\"" + refr.LocalCopy.ToString() + "\"";
- ret += " refto=\"";
- try
- {
- /*
+ ret += "Gac\"";
+ ret += " localcopy=\"" + refr.LocalCopy.ToString() + "\"";
+ ret += " refto=\"";
+ try
+ {
+ /*
Day changed to 28 Mar 2007
...
08:09 < cj> is there anything that replaces Assembly.LoadFromPartialName() ?
@@ -110,406 +110,406 @@ namespace Prebuild.Core.Targets
08:12 < cj> alrighty.
08:12 < jonp> you just get warnings when using it
*/
- Assembly assem = Assembly.LoadWithPartialName(refr.Name);
- ret += assem.FullName;
+ Assembly assem = Assembly.LoadWithPartialName(refr.Name);
+ ret += assem.FullName;
//ret += refr.Name;
- }
- catch (System.NullReferenceException e)
- {
- e.ToString();
- ret += refr.Name;
- }
- ret += "\" />";
- }
+ }
+ catch (System.NullReferenceException e)
+ {
+ e.ToString();
+ ret += refr.Name;
+ }
+ ret += "\" />";
+ }
- return ret;
- }
+ return ret;
+ }
- private static string FindFileReference(string refName, ProjectNode project)
- {
- foreach(ReferencePathNode refPath in project.ReferencePaths)
- {
- string fullPath = Helper.MakeFilePath(refPath.Path, refName, "dll");
+ private static string FindFileReference(string refName, ProjectNode project)
+ {
+ foreach (ReferencePathNode refPath in project.ReferencePaths)
+ {
+ string fullPath = Helper.MakeFilePath(refPath.Path, refName, "dll");
- if(File.Exists(fullPath))
- {
- return fullPath;
- }
- }
+ if (File.Exists(fullPath))
+ {
+ return fullPath;
+ }
+ }
- return null;
- }
+ return null;
+ }
- ///
- /// Gets the XML doc file.
- ///
- /// The project.
- /// The conf.
- ///
- public static string GenerateXmlDocFile(ProjectNode project, ConfigurationNode conf)
- {
- if( conf == null )
- {
- throw new ArgumentNullException("conf");
- }
- if( project == null )
- {
- throw new ArgumentNullException("project");
- }
- string docFile = (string)conf.Options["XmlDocFile"];
- if(docFile != null && docFile.Length == 0)//default to assembly name if not specified
- {
- return "False";
- }
- return "True";
- }
+ ///
+ /// Gets the XML doc file.
+ ///
+ /// The project.
+ /// The conf.
+ ///
+ public static string GenerateXmlDocFile(ProjectNode project, ConfigurationNode conf)
+ {
+ if (conf == null)
+ {
+ throw new ArgumentNullException("conf");
+ }
+ if (project == null)
+ {
+ throw new ArgumentNullException("project");
+ }
+ string docFile = (string)conf.Options["XmlDocFile"];
+ if (docFile != null && docFile.Length == 0)//default to assembly name if not specified
+ {
+ return "False";
+ }
+ return "True";
+ }
- private void WriteProject(SolutionNode solution, ProjectNode project)
- {
- string csComp = "Mcs";
- string netRuntime = "Mono";
- if(project.Runtime == ClrRuntime.Microsoft)
- {
- csComp = "Csc";
- netRuntime = "MsNet";
- }
+ private void WriteProject(SolutionNode solution, ProjectNode project)
+ {
+ string csComp = "Mcs";
+ string netRuntime = "Mono";
+ if (project.Runtime == ClrRuntime.Microsoft)
+ {
+ csComp = "Csc";
+ netRuntime = "MsNet";
+ }
- string projFile = Helper.MakeFilePath(project.FullPath, project.Name, "mdp");
- StreamWriter ss = new StreamWriter(projFile);
+ string projFile = Helper.MakeFilePath(project.FullPath, project.Name, "mdp");
+ StreamWriter ss = new StreamWriter(projFile);
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
- using(ss)
- {
- ss.WriteLine(
- "",
- project.Name,
- project.RootNamespace
- );
-
- int count = 0;
-
- ss.WriteLine(" ", solution.ActiveConfig);
+ using (ss)
+ {
+ ss.WriteLine(
+ "",
+ project.Name,
+ project.RootNamespace
+ );
- foreach(ConfigurationNode conf in project.Configurations)
- {
- ss.WriteLine(" ", conf.Name);
- ss.Write(" ");
-
- ss.Write(" ");
-
- ss.Write(" ", solution.ActiveConfig);
+
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ss.WriteLine(" ", conf.Name);
+ ss.Write(" ");
+
+ ss.Write(" ");
+
+ ss.Write(" ");
-
- ss.Write(" ");
- ss.WriteLine(" ");
+ ss.WriteLine(" />");
- count++;
- }
- ss.WriteLine(" ");
+ ss.Write(" ");
+ ss.WriteLine(" ");
- ss.Write(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
-
- ss.WriteLine(" ");
- foreach(string file in project.Files)
- {
- string buildAction;
- string dependson = "";
- string resource_id = "";
- string copyToOutput = "";
-
- switch(project.Files.GetBuildAction(file))
- {
- case BuildAction.None:
- buildAction = "Nothing";
- break;
+ count++;
+ }
+ ss.WriteLine(" ");
- case BuildAction.Content:
- buildAction = "Exclude";
- break;
+ ss.Write(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
- case BuildAction.EmbeddedResource:
- buildAction = "EmbedAsResource";
- break;
+ ss.WriteLine(" ");
+ foreach (string file in project.Files)
+ {
+ string buildAction;
+ string dependson = "";
+ string resource_id = "";
+ string copyToOutput = "";
- default:
- buildAction = "Compile";
- break;
- }
+ switch (project.Files.GetBuildAction(file))
+ {
+ case BuildAction.None:
+ buildAction = "Nothing";
+ break;
+
+ case BuildAction.Content:
+ buildAction = "Exclude";
+ break;
+
+ case BuildAction.EmbeddedResource:
+ buildAction = "EmbedAsResource";
+ break;
+
+ default:
+ buildAction = "Compile";
+ break;
+ }
if (project.Files.GetCopyToOutput(file) != CopyToOutput.Never)
- buildAction = "FileCopy";
+ buildAction = "FileCopy";
- // Sort of a hack, we try and resolve the path and make it relative, if we can.
- string extension = Path.GetExtension(file);
- string designer_format = string.Format(".Designer{0}", extension);
+ // Sort of a hack, we try and resolve the path and make it relative, if we can.
+ string extension = Path.GetExtension(file);
+ string designer_format = string.Format(".Designer{0}", extension);
- if (file.EndsWith(designer_format))
- {
- string basename = file.Substring(0, file.LastIndexOf(designer_format));
- string[] extensions = new string[] { ".cs", ".resx", ".settings" };
+ if (file.EndsWith(designer_format))
+ {
+ string basename = file.Substring(0, file.LastIndexOf(designer_format));
+ string[] extensions = new string[] { ".cs", ".resx", ".settings" };
- foreach(string ext in extensions)
- {
- if (project.Files.Contains(basename + ext))
- {
- dependson = string.Format(" dependson=\"{0}{1}\"", basename, ext);
- break;
- }
- }
- }
- if (extension == ".resx")
- {
- buildAction = "EmbedAsResource";
- string basename = file.Substring(0, file.LastIndexOf(".resx"));
-
- // Visual Studio type resx + form dependency
- if (project.Files.Contains(basename + ".cs"))
- {
- dependson = string.Format(" dependson=\"{0}{1}\"", basename, ".cs");
- }
+ foreach (string ext in extensions)
+ {
+ if (project.Files.Contains(basename + ext))
+ {
+ dependson = string.Format(" dependson=\"{0}{1}\"", basename, ext);
+ break;
+ }
+ }
+ }
+ if (extension == ".resx")
+ {
+ buildAction = "EmbedAsResource";
+ string basename = file.Substring(0, file.LastIndexOf(".resx"));
- // We need to specify a resources file name to avoid MissingManifestResourceExceptions
- // in libraries that are built.
- resource_id = string.Format(" resource_id=\"{0}.{1}.resources\"",
- project.AssemblyName, basename.Replace("/", "."));
- }
+ // Visual Studio type resx + form dependency
+ if (project.Files.Contains(basename + ".cs"))
+ {
+ dependson = string.Format(" dependson=\"{0}{1}\"", basename, ".cs");
+ }
- switch(project.Files.GetCopyToOutput(file))
- {
- case CopyToOutput.Always:
- copyToOutput = string.Format(" copyToOutputDirectory=\"Always\"");
- break;
- case CopyToOutput.PreserveNewest:
- copyToOutput = string.Format(" copyToOutputDirectory=\"PreserveNewest\"");
- break;
- }
-
- // Sort of a hack, we try and resolve the path and make it relative, if we can.
- string filePath = PrependPath(file);
- ss.WriteLine(" ",
- filePath, buildAction, dependson, resource_id, copyToOutput);
- }
- ss.WriteLine(" ");
+ // We need to specify a resources file name to avoid MissingManifestResourceExceptions
+ // in libraries that are built.
+ resource_id = string.Format(" resource_id=\"{0}.{1}.resources\"",
+ project.AssemblyName, basename.Replace("/", "."));
+ }
- ss.WriteLine(" ");
- foreach(ReferenceNode refr in project.References)
- {
- ss.WriteLine(" {0}", BuildReference(solution, refr));
- }
- ss.WriteLine(" ");
+ switch (project.Files.GetCopyToOutput(file))
+ {
+ case CopyToOutput.Always:
+ copyToOutput = string.Format(" copyToOutputDirectory=\"Always\"");
+ break;
+ case CopyToOutput.PreserveNewest:
+ copyToOutput = string.Format(" copyToOutputDirectory=\"PreserveNewest\"");
+ break;
+ }
+
+ // Sort of a hack, we try and resolve the path and make it relative, if we can.
+ string filePath = PrependPath(file);
+ ss.WriteLine(" ",
+ filePath, buildAction, dependson, resource_id, copyToOutput);
+ }
+ ss.WriteLine(" ");
+
+ ss.WriteLine(" ");
+ foreach (ReferenceNode refr in project.References)
+ {
+ ss.WriteLine(" {0}", BuildReference(solution, refr));
+ }
+ ss.WriteLine(" ");
- ss.WriteLine("");
- }
+ ss.WriteLine("");
+ }
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
- private void WriteCombine(SolutionNode solution)
- {
- m_Kernel.Log.Write("Creating MonoDevelop combine and project files");
- foreach(ProjectNode project in solution.Projects)
- {
- if(m_Kernel.AllowProject(project.FilterGroups))
- {
- m_Kernel.Log.Write("...Creating project: {0}", project.Name);
- WriteProject(solution, project);
- }
- }
+ private void WriteCombine(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Creating MonoDevelop combine and project files");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (m_Kernel.AllowProject(project.FilterGroups))
+ {
+ m_Kernel.Log.Write("...Creating project: {0}", project.Name);
+ WriteProject(solution, project);
+ }
+ }
- m_Kernel.Log.Write("");
- string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "mds");
- StreamWriter ss = new StreamWriter(combFile);
+ m_Kernel.Log.Write("");
+ string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "mds");
+ StreamWriter ss = new StreamWriter(combFile);
+
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
-
int count = 0;
-
- using(ss)
- {
- ss.WriteLine("", solution.Name);
- count = 0;
- foreach(ConfigurationNode conf in solution.Configurations)
- {
- if(count == 0)
- {
- ss.WriteLine(" ", conf.Name);
- }
+ using (ss)
+ {
+ ss.WriteLine("", solution.Name);
- ss.WriteLine(" ", conf.Name);
- foreach(ProjectNode project in solution.Projects)
- {
- ss.WriteLine(" ", project.Name, conf.Name);
- }
- ss.WriteLine(" ");
+ count = 0;
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ if (count == 0)
+ {
+ ss.WriteLine(" ", conf.Name);
+ }
- count++;
- }
- ss.WriteLine(" ");
-
- count = 0;
-
- foreach(ProjectNode project in solution.Projects)
- {
- if(count == 0)
- ss.WriteLine(" ", project.Name);
+ ss.WriteLine(" ", conf.Name);
+ foreach (ProjectNode project in solution.Projects)
+ {
+ ss.WriteLine(" ", project.Name, conf.Name);
+ }
+ ss.WriteLine(" ");
- ss.WriteLine(" ", project.Name);
- count++;
- }
- ss.WriteLine(" ");
-
- ss.WriteLine(" ");
- foreach(ProjectNode project in solution.Projects)
- {
- string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
- ss.WriteLine(" ",
- Helper.MakeFilePath(path, project.Name, "mdp"));
- }
- ss.WriteLine(" ");
-
- ss.WriteLine("");
- }
+ count++;
+ }
+ ss.WriteLine(" ");
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
+ count = 0;
- private void CleanProject(ProjectNode project)
- {
- m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "mdp");
- Helper.DeleteIfExists(projectFile);
- }
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (count == 0)
+ ss.WriteLine(" ", project.Name);
- private void CleanSolution(SolutionNode solution)
- {
- m_Kernel.Log.Write("Cleaning MonoDevelop combine and project files for", solution.Name);
+ ss.WriteLine(" ", project.Name);
+ count++;
+ }
+ ss.WriteLine(" ");
- string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "mds");
- Helper.DeleteIfExists(slnFile);
+ ss.WriteLine(" ");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
+ ss.WriteLine(" ",
+ Helper.MakeFilePath(path, project.Name, "mdp"));
+ }
+ ss.WriteLine(" ");
- foreach(ProjectNode project in solution.Projects)
- {
- CleanProject(project);
- }
-
- m_Kernel.Log.Write("");
- }
+ ss.WriteLine("");
+ }
- #endregion
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
- #region ITarget Members
+ private void CleanProject(ProjectNode project)
+ {
+ m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "mdp");
+ Helper.DeleteIfExists(projectFile);
+ }
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public void Write(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode solution in kern.Solutions)
- {
- WriteCombine(solution);
- }
- m_Kernel = null;
- }
+ private void CleanSolution(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Cleaning MonoDevelop combine and project files for", solution.Name);
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public virtual void Clean(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode sol in kern.Solutions)
- {
- CleanSolution(sol);
- }
- m_Kernel = null;
- }
+ string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "mds");
+ Helper.DeleteIfExists(slnFile);
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return "sharpdev";
- }
- }
+ foreach (ProjectNode project in solution.Projects)
+ {
+ CleanProject(project);
+ }
- #endregion
- }
+ m_Kernel.Log.Write("");
+ }
+
+ #endregion
+
+ #region ITarget Members
+
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public void Write(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode solution in kern.Solutions)
+ {
+ WriteCombine(solution);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public virtual void Clean(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode sol in kern.Solutions)
+ {
+ CleanSolution(sol);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return "sharpdev";
+ }
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/NAntTarget.cs b/Prebuild/src/Core/Targets/NAntTarget.cs
index 925f5ca86d..0c3679be03 100644
--- a/Prebuild/src/Core/Targets/NAntTarget.cs
+++ b/Prebuild/src/Core/Targets/NAntTarget.cs
@@ -47,36 +47,36 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("nant")]
- public class NAntTarget : ITarget
- {
- #region Fields
+ ///
+ ///
+ ///
+ [Target("nant")]
+ public class NAntTarget : ITarget
+ {
+ #region Fields
- private Kernel m_Kernel;
+ private Kernel m_Kernel;
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- private static string PrependPath(string path)
- {
- string tmpPath = Helper.NormalizePath(path, '/');
- Regex regex = new Regex(@"(\w):/(\w+)");
- Match match = regex.Match(tmpPath);
- //if(match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
- //{
- tmpPath = Helper.NormalizePath(tmpPath);
- //}
- // else
- // {
- // tmpPath = Helper.NormalizePath("./" + tmpPath);
- // }
+ private static string PrependPath(string path)
+ {
+ string tmpPath = Helper.NormalizePath(path, '/');
+ Regex regex = new Regex(@"(\w):/(\w+)");
+ Match match = regex.Match(tmpPath);
+ //if(match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
+ //{
+ tmpPath = Helper.NormalizePath(tmpPath);
+ //}
+ // else
+ // {
+ // tmpPath = Helper.NormalizePath("./" + tmpPath);
+ // }
- return tmpPath;
- }
+ return tmpPath;
+ }
private static string BuildReference(SolutionNode solution, ProjectNode currentProject, ReferenceNode refr)
{
@@ -85,16 +85,16 @@ namespace Prebuild.Core.Targets
{
return refr.Path;
}
-
+
if (solution.ProjectsTable.ContainsKey(refr.Name))
{
- ProjectNode projectRef = (ProjectNode) solution.ProjectsTable[refr.Name];
+ ProjectNode projectRef = (ProjectNode)solution.ProjectsTable[refr.Name];
string finalPath =
Helper.NormalizePath(refr.Name + GetProjectExtension(projectRef), '/');
return finalPath;
}
- ProjectNode project = (ProjectNode) refr.Parent;
+ ProjectNode project = (ProjectNode)refr.Parent;
// Do we have an explicit file reference?
string fileRef = FindFileReference(refr.Name, project);
@@ -113,7 +113,7 @@ namespace Prebuild.Core.Targets
return refr.Name + ".dll";
}
- public static string GetRefFileName(string refName)
+ public static string GetRefFileName(string refName)
{
if (ExtensionSpecified(refName))
{
@@ -140,11 +140,11 @@ namespace Prebuild.Core.Targets
return extension;
}
- private static string FindFileReference(string refName, ProjectNode project)
- {
- foreach (ReferencePathNode refPath in project.ReferencePaths)
- {
- string fullPath = Helper.MakeFilePath(refPath.Path, refName);
+ private static string FindFileReference(string refName, ProjectNode project)
+ {
+ foreach (ReferencePathNode refPath in project.ReferencePaths)
+ {
+ string fullPath = Helper.MakeFilePath(refPath.Path, refName);
if (File.Exists(fullPath))
{
@@ -153,10 +153,10 @@ namespace Prebuild.Core.Targets
fullPath = Helper.MakeFilePath(refPath.Path, refName, "dll");
- if (File.Exists(fullPath))
- {
- return fullPath;
- }
+ if (File.Exists(fullPath))
+ {
+ return fullPath;
+ }
fullPath = Helper.MakeFilePath(refPath.Path, refName, "exe");
@@ -164,225 +164,226 @@ namespace Prebuild.Core.Targets
{
return fullPath;
}
- }
+ }
- return null;
- }
+ return null;
+ }
- ///
- /// Gets the XML doc file.
- ///
- /// The project.
- /// The conf.
- ///
- public static string GetXmlDocFile(ProjectNode project, ConfigurationNode conf)
- {
- if (conf == null)
- {
- throw new ArgumentNullException("conf");
- }
- if (project == null)
- {
- throw new ArgumentNullException("project");
- }
- string docFile = (string)conf.Options["XmlDocFile"];
- // if(docFile != null && docFile.Length == 0)//default to assembly name if not specified
- // {
- // return Path.GetFileNameWithoutExtension(project.AssemblyName) + ".xml";
- // }
- return docFile;
- }
+ ///
+ /// Gets the XML doc file.
+ ///
+ /// The project.
+ /// The conf.
+ ///
+ public static string GetXmlDocFile(ProjectNode project, ConfigurationNode conf)
+ {
+ if (conf == null)
+ {
+ throw new ArgumentNullException("conf");
+ }
+ if (project == null)
+ {
+ throw new ArgumentNullException("project");
+ }
+ string docFile = (string)conf.Options["XmlDocFile"];
+ // if(docFile != null && docFile.Length == 0)//default to assembly name if not specified
+ // {
+ // return Path.GetFileNameWithoutExtension(project.AssemblyName) + ".xml";
+ // }
+ return docFile;
+ }
- private void WriteProject(SolutionNode solution, ProjectNode project)
- {
+ private void WriteProject(SolutionNode solution, ProjectNode project)
+ {
string projFile = Helper.MakeFilePath(project.FullPath, project.Name + GetProjectExtension(project), "build");
- StreamWriter ss = new StreamWriter(projFile);
+ StreamWriter ss = new StreamWriter(projFile);
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
- bool hasDoc = false;
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
+ bool hasDoc = false;
- using (ss)
- {
- ss.WriteLine("");
- ss.WriteLine("", project.Name);
- ss.WriteLine(" ", "build");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- foreach (ReferenceNode refr in project.References)
- {
- if (refr.LocalCopy)
- {
- ss.WriteLine(" ", '/'));
- }
- }
-
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- if (project.ConfigFile != null && project.ConfigFile.Length!=0)
- {
- ss.Write(" ");
+ ss.WriteLine("", project.Name);
+ ss.WriteLine(" ", "build");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ foreach (ReferenceNode refr in project.References)
+ {
+ if (refr.LocalCopy)
+ {
+ ss.WriteLine(" ", '/'));
+ }
+ }
- if (project.Type == ProjectType.Library)
- {
- ss.Write(".dll.config\"");
- }
- else
- {
- ss.Write(".exe.config\"");
- }
- ss.WriteLine(" />");
- }
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ if (project.ConfigFile != null && project.ConfigFile.Length != 0)
+ {
+ ss.Write(" ");
- ss.WriteLine(" {0}", "");
-
- foreach (string file in project.Files)
- {
- // Ignore if we aren't content
- if (project.Files.GetBuildAction(file) != BuildAction.Content)
- continue;
+ if (project.Type == ProjectType.Library)
+ {
+ ss.Write(".dll.config\"");
+ }
+ else
+ {
+ ss.Write(".exe.config\"");
+ }
+ ss.WriteLine(" />");
+ }
- // Create a include tag
- ss.WriteLine(" {0}", "");
- }
+ // Add the content files to just be copied
+ ss.WriteLine(" {0}", "");
+ ss.WriteLine(" {0}", "");
- ss.WriteLine(" {0}", "");
- ss.WriteLine(" {0}", "");
+ foreach (string file in project.Files)
+ {
+ // Ignore if we aren't content
+ if (project.Files.GetBuildAction(file) != BuildAction.Content)
+ continue;
- ss.Write(" ");
+ }
+
+ ss.WriteLine(" {0}", "");
+ ss.WriteLine(" {0}", "");
+
+ ss.Write(" ");
- ss.WriteLine(" ", project.RootNamespace);
- foreach (string file in project.Files)
- {
- switch (project.Files.GetBuildAction(file))
- {
- case BuildAction.EmbeddedResource:
- ss.WriteLine(" {0}", "");
- break;
- default:
- if (project.Files.GetSubType(file) != SubType.Code && project.Files.GetSubType(file) != SubType.Settings)
- {
- ss.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
- }
- break;
- }
- }
- //if (project.Files.GetSubType(file).ToString() != "Code")
- //{
- // ps.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
+ ss.WriteLine(" ", project.RootNamespace);
+ foreach (string file in project.Files)
+ {
+ switch (project.Files.GetBuildAction(file))
+ {
+ case BuildAction.EmbeddedResource:
+ ss.WriteLine(" {0}", "");
+ break;
+ default:
+ if (project.Files.GetSubType(file) != SubType.Code && project.Files.GetSubType(file) != SubType.Settings)
+ {
+ ss.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
+ }
+ break;
+ }
+ }
+ //if (project.Files.GetSubType(file).ToString() != "Code")
+ //{
+ // ps.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- foreach (string file in project.Files)
- {
- switch (project.Files.GetBuildAction(file))
- {
- case BuildAction.Compile:
- ss.WriteLine(" ");
- break;
- default:
- break;
- }
- }
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- foreach(ReferencePathNode refPath in project.ReferencePaths)
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ foreach (string file in project.Files)
+ {
+ switch (project.Files.GetBuildAction(file))
+ {
+ case BuildAction.Compile:
+ ss.WriteLine(" ");
+ break;
+ default:
+ break;
+ }
+ }
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ foreach (ReferencePathNode refPath in project.ReferencePaths)
{
ss.WriteLine(" ");
}
- ss.WriteLine(" ");
- foreach (ReferenceNode refr in project.References)
- {
- string path = Helper.NormalizePath(Helper.MakePathRelativeTo(project.FullPath, BuildReference(solution, project, refr)), '/');
- if (refr.Path != null) {
+ ss.WriteLine(" ");
+ foreach (ReferenceNode refr in project.References)
+ {
+ string path = Helper.NormalizePath(Helper.MakePathRelativeTo(project.FullPath, BuildReference(solution, project, refr)), '/');
+ if (refr.Path != null)
+ {
if (ExtensionSpecified(refr.Name))
{
- ss.WriteLine (" ");
+ ss.WriteLine(" ");
}
else
{
- ss.WriteLine (" ");
+ ss.WriteLine(" ");
}
}
else
{
- ss.WriteLine (" ");
+ ss.WriteLine(" ");
}
- }
- ss.WriteLine(" ");
+ }
+ ss.WriteLine(" ");
- ss.WriteLine(" ");
+ ss.WriteLine(" ");
- foreach (ConfigurationNode conf in project.Configurations)
+ foreach (ConfigurationNode conf in project.Configurations)
{
if (!String.IsNullOrEmpty(conf.Options.OutputPath))
{
@@ -404,170 +405,170 @@ namespace Prebuild.Core.Targets
}
}
- ss.WriteLine(" ");
+ ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
- ss.WriteLine(" ");
- if (hasDoc)
- {
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.Write(" ");
- }
- else
- {
- ss.WriteLine(".exe\" />");
- }
+ ss.WriteLine(" ");
+ if (hasDoc)
+ {
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.Write(" ");
+ }
+ else
+ {
+ ss.WriteLine(".exe\" />");
+ }
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- // foreach(ReferenceNode refr in project.References)
- // {
- // string path = Helper.NormalizePath(Helper.MakePathRelativeTo(project.FullPath, BuildReferencePath(solution, refr)), '/');
- // if (path != "")
- // {
- // ss.WriteLine(" ", path);
- // }
- // }
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- }
- ss.WriteLine(" ");
- ss.WriteLine("");
- }
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ // foreach(ReferenceNode refr in project.References)
+ // {
+ // string path = Helper.NormalizePath(Helper.MakePathRelativeTo(project.FullPath, BuildReferencePath(solution, refr)), '/');
+ // if (path != "")
+ // {
+ // ss.WriteLine(" ", path);
+ // }
+ // }
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ }
+ ss.WriteLine(" ");
+ ss.WriteLine("");
+ }
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
- private void WriteCombine(SolutionNode solution)
- {
- m_Kernel.Log.Write("Creating NAnt build files");
- foreach (ProjectNode project in solution.Projects)
- {
- if (m_Kernel.AllowProject(project.FilterGroups))
- {
- m_Kernel.Log.Write("...Creating project: {0}", project.Name);
- WriteProject(solution, project);
- }
- }
+ private void WriteCombine(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Creating NAnt build files");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (m_Kernel.AllowProject(project.FilterGroups))
+ {
+ m_Kernel.Log.Write("...Creating project: {0}", project.Name);
+ WriteProject(solution, project);
+ }
+ }
- m_Kernel.Log.Write("");
- string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "build");
- StreamWriter ss = new StreamWriter(combFile);
+ m_Kernel.Log.Write("");
+ string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "build");
+ StreamWriter ss = new StreamWriter(combFile);
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
- using (ss)
- {
- ss.WriteLine("");
- ss.WriteLine("", solution.Name);
- ss.WriteLine(" ");
- ss.WriteLine();
+ using (ss)
+ {
+ ss.WriteLine("");
+ ss.WriteLine("", solution.Name);
+ ss.WriteLine(" ");
+ ss.WriteLine();
- //ss.WriteLine(" ");
- //ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
+ //ss.WriteLine(" ");
+ //ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
- // Use the active configuration, which is the first configuration name in the prebuild file.
- Dictionary emittedConfigurations = new Dictionary();
+ // Use the active configuration, which is the first configuration name in the prebuild file.
+ Dictionary emittedConfigurations = new Dictionary();
- ss.WriteLine(" ", solution.ActiveConfig);
- ss.WriteLine();
+ ss.WriteLine(" ", solution.ActiveConfig);
+ ss.WriteLine();
- foreach (ConfigurationNode conf in solution.Configurations)
- {
- // If the name isn't in the emitted configurations, we give a high level target to the
- // platform specific on. This lets "Debug" point to "Debug-AnyCPU".
- if (!emittedConfigurations.ContainsKey(conf.Name))
- {
- // Add it to the dictionary so we only emit one.
- emittedConfigurations.Add(conf.Name, conf.Platform);
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ // If the name isn't in the emitted configurations, we give a high level target to the
+ // platform specific on. This lets "Debug" point to "Debug-AnyCPU".
+ if (!emittedConfigurations.ContainsKey(conf.Name))
+ {
+ // Add it to the dictionary so we only emit one.
+ emittedConfigurations.Add(conf.Name, conf.Platform);
- // Write out the target block.
- ss.WriteLine(" ", conf.Name, conf.Platform);
- ss.WriteLine(" ");
- ss.WriteLine();
- }
+ // Write out the target block.
+ ss.WriteLine(" ", conf.Name, conf.Platform);
+ ss.WriteLine(" ");
+ ss.WriteLine();
+ }
- // Write out the target for the configuration.
- ss.WriteLine(" ", conf.Name, conf.Platform);
- ss.WriteLine(" ", conf.Name);
- ss.WriteLine(" ", conf.Options["DebugInformation"].ToString().ToLower());
- ss.WriteLine("\t\t ", conf.Platform);
- ss.WriteLine(" ");
- ss.WriteLine();
- }
+ // Write out the target for the configuration.
+ ss.WriteLine(" ", conf.Name, conf.Platform);
+ ss.WriteLine(" ", conf.Name);
+ ss.WriteLine(" ", conf.Options["DebugInformation"].ToString().ToLower());
+ ss.WriteLine("\t\t ", conf.Platform);
+ ss.WriteLine(" ");
+ ss.WriteLine();
+ }
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine(" ");
- ss.WriteLine();
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ ss.WriteLine();
ss.WriteLine(" ");
ss.WriteLine(" ");
@@ -650,7 +651,7 @@ namespace Prebuild.Core.Targets
}
}
- ss.WriteLine(" ");
+ ss.WriteLine(" ");
foreach (ProjectNode project in solution.Projects)
{
string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
diff --git a/Prebuild/src/Core/Targets/SharpDevelop2Target.cs b/Prebuild/src/Core/Targets/SharpDevelop2Target.cs
index 66dd1bc6f6..0f4038875f 100644
--- a/Prebuild/src/Core/Targets/SharpDevelop2Target.cs
+++ b/Prebuild/src/Core/Targets/SharpDevelop2Target.cs
@@ -29,11 +29,11 @@ using Prebuild.Core.Attributes;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("sharpdev2")]
- public class SharpDevelop2Target : VS2005Target
+ ///
+ ///
+ ///
+ [Target("sharpdev2")]
+ public class SharpDevelop2Target : VS2005Target
{
#region Properties
public override string VersionName
@@ -45,38 +45,38 @@ namespace Prebuild.Core.Targets
}
#endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public override void Write(Kernel kern)
- {
- base.Write(kern);
- }
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public override void Write(Kernel kern)
+ {
+ base.Write(kern);
+ }
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public override void Clean(Kernel kern)
- {
- base.Clean(kern);
- }
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public override void Clean(Kernel kern)
+ {
+ base.Clean(kern);
+ }
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return "sharpdev2";
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return "sharpdev2";
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/SharpDevelopTarget.cs b/Prebuild/src/Core/Targets/SharpDevelopTarget.cs
index 8e3205025f..aa83c94915 100644
--- a/Prebuild/src/Core/Targets/SharpDevelopTarget.cs
+++ b/Prebuild/src/Core/Targets/SharpDevelopTarget.cs
@@ -34,392 +34,392 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("sharpdev")]
- public class SharpDevelopTarget : ITarget
- {
- #region Fields
+ ///
+ ///
+ ///
+ [Target("sharpdev")]
+ public class SharpDevelopTarget : ITarget
+ {
+ #region Fields
- private Kernel m_Kernel;
+ private Kernel m_Kernel;
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- private static string PrependPath(string path)
- {
- string tmpPath = Helper.NormalizePath(path, '/');
- Regex regex = new Regex(@"(\w):/(\w+)");
- Match match = regex.Match(tmpPath);
- if(match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
- {
- tmpPath = Helper.NormalizePath(tmpPath);
- }
- else
- {
- tmpPath = Helper.NormalizePath("./" + tmpPath);
- }
+ private static string PrependPath(string path)
+ {
+ string tmpPath = Helper.NormalizePath(path, '/');
+ Regex regex = new Regex(@"(\w):/(\w+)");
+ Match match = regex.Match(tmpPath);
+ if (match.Success || tmpPath[0] == '.' || tmpPath[0] == '/')
+ {
+ tmpPath = Helper.NormalizePath(tmpPath);
+ }
+ else
+ {
+ tmpPath = Helper.NormalizePath("./" + tmpPath);
+ }
- return tmpPath;
- }
+ return tmpPath;
+ }
- private static string BuildReference(SolutionNode solution, ReferenceNode refr)
- {
- string ret = "";
- }
- else
- {
- ProjectNode project = (ProjectNode)refr.Parent;
- string fileRef = FindFileReference(refr.Name, project);
+ private static string BuildReference(SolutionNode solution, ReferenceNode refr)
+ {
+ string ret = "";
+ }
+ else
+ {
+ ProjectNode project = (ProjectNode)refr.Parent;
+ string fileRef = FindFileReference(refr.Name, project);
- if(refr.Path != null || fileRef != null)
- {
- ret += "Assembly\" refto=\"";
+ if (refr.Path != null || fileRef != null)
+ {
+ ret += "Assembly\" refto=\"";
- string finalPath = (refr.Path != null) ? Helper.MakeFilePath(refr.Path, refr.Name, "dll") : fileRef;
+ string finalPath = (refr.Path != null) ? Helper.MakeFilePath(refr.Path, refr.Name, "dll") : fileRef;
- ret += finalPath;
- ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
- return ret;
- }
+ ret += finalPath;
+ ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
+ return ret;
+ }
- ret += "Gac\" refto=\"";
- try
- {
- //Assembly assem = Assembly.Load(refr.Name);
+ ret += "Gac\" refto=\"";
+ try
+ {
+ //Assembly assem = Assembly.Load(refr.Name);
ret += refr.Name;// assem.FullName;
- }
- catch (System.NullReferenceException e)
- {
- e.ToString();
- ret += refr.Name;
- }
- ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
- }
+ }
+ catch (System.NullReferenceException e)
+ {
+ e.ToString();
+ ret += refr.Name;
+ }
+ ret += "\" localcopy=\"" + refr.LocalCopy.ToString() + "\" />";
+ }
- return ret;
- }
+ return ret;
+ }
- private static string FindFileReference(string refName, ProjectNode project)
- {
- foreach(ReferencePathNode refPath in project.ReferencePaths)
- {
- string fullPath = Helper.MakeFilePath(refPath.Path, refName, "dll");
+ private static string FindFileReference(string refName, ProjectNode project)
+ {
+ foreach (ReferencePathNode refPath in project.ReferencePaths)
+ {
+ string fullPath = Helper.MakeFilePath(refPath.Path, refName, "dll");
- if(File.Exists(fullPath))
- {
- return fullPath;
- }
- }
+ if (File.Exists(fullPath))
+ {
+ return fullPath;
+ }
+ }
- return null;
- }
+ return null;
+ }
- ///
- /// Gets the XML doc file.
- ///
- /// The project.
- /// The conf.
- ///
- public static string GenerateXmlDocFile(ProjectNode project, ConfigurationNode conf)
- {
- if( conf == null )
- {
- throw new ArgumentNullException("conf");
- }
- if( project == null )
- {
- throw new ArgumentNullException("project");
- }
- string docFile = (string)conf.Options["XmlDocFile"];
- if(docFile != null && docFile.Length == 0)//default to assembly name if not specified
- {
- return "False";
- }
- return "True";
- }
+ ///
+ /// Gets the XML doc file.
+ ///
+ /// The project.
+ /// The conf.
+ ///
+ public static string GenerateXmlDocFile(ProjectNode project, ConfigurationNode conf)
+ {
+ if (conf == null)
+ {
+ throw new ArgumentNullException("conf");
+ }
+ if (project == null)
+ {
+ throw new ArgumentNullException("project");
+ }
+ string docFile = (string)conf.Options["XmlDocFile"];
+ if (docFile != null && docFile.Length == 0)//default to assembly name if not specified
+ {
+ return "False";
+ }
+ return "True";
+ }
- private void WriteProject(SolutionNode solution, ProjectNode project)
- {
- string csComp = "Csc";
- string netRuntime = "MsNet";
- if(project.Runtime == ClrRuntime.Mono)
- {
- csComp = "Mcs";
- netRuntime = "Mono";
- }
+ private void WriteProject(SolutionNode solution, ProjectNode project)
+ {
+ string csComp = "Csc";
+ string netRuntime = "MsNet";
+ if (project.Runtime == ClrRuntime.Mono)
+ {
+ csComp = "Mcs";
+ netRuntime = "Mono";
+ }
- string projFile = Helper.MakeFilePath(project.FullPath, project.Name, "prjx");
- StreamWriter ss = new StreamWriter(projFile);
+ string projFile = Helper.MakeFilePath(project.FullPath, project.Name, "prjx");
+ StreamWriter ss = new StreamWriter(projFile);
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(projFile));
- using(ss)
- {
- ss.WriteLine(
- "",
- project.Name,
- project.RootNamespace
- );
+ using (ss)
+ {
+ ss.WriteLine(
+ "",
+ project.Name,
+ project.RootNamespace
+ );
- ss.WriteLine(" ");
- foreach(string file in project.Files)
- {
- string buildAction = "Compile";
- switch(project.Files.GetBuildAction(file))
- {
- case BuildAction.None:
- buildAction = "Nothing";
- break;
+ ss.WriteLine(" ");
+ foreach (string file in project.Files)
+ {
+ string buildAction = "Compile";
+ switch (project.Files.GetBuildAction(file))
+ {
+ case BuildAction.None:
+ buildAction = "Nothing";
+ break;
- case BuildAction.Content:
- buildAction = "Exclude";
- break;
+ case BuildAction.Content:
+ buildAction = "Exclude";
+ break;
- case BuildAction.EmbeddedResource:
- buildAction = "EmbedAsResource";
- break;
+ case BuildAction.EmbeddedResource:
+ buildAction = "EmbedAsResource";
+ break;
- default:
- buildAction = "Compile";
- break;
- }
+ default:
+ buildAction = "Compile";
+ break;
+ }
- // Sort of a hack, we try and resolve the path and make it relative, if we can.
- string filePath = PrependPath(file);
- ss.WriteLine(" ", filePath, buildAction);
- }
- ss.WriteLine(" ");
+ // Sort of a hack, we try and resolve the path and make it relative, if we can.
+ string filePath = PrependPath(file);
+ ss.WriteLine(" ", filePath, buildAction);
+ }
+ ss.WriteLine(" ");
- ss.WriteLine(" ");
- foreach(ReferenceNode refr in project.References)
- {
- ss.WriteLine(" {0}", BuildReference(solution, refr));
- }
- ss.WriteLine(" ");
+ ss.WriteLine(" ");
+ foreach (ReferenceNode refr in project.References)
+ {
+ ss.WriteLine(" {0}", BuildReference(solution, refr));
+ }
+ ss.WriteLine(" ");
- ss.Write(" ");
+ ss.Write(" ");
- int count = 0;
-
- ss.WriteLine(" ", solution.ActiveConfig);
+ int count = 0;
- foreach(ConfigurationNode conf in project.Configurations)
- {
- ss.Write(" ");
- ss.Write(" ");
+ ss.WriteLine(" ", solution.ActiveConfig);
- ss.Write(" ");
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ss.Write(" ");
+ ss.Write(" ");
- ss.Write(" ");
- ss.WriteLine(" ");
+ ss.Write(" ");
- count++;
- }
- ss.WriteLine(" ");
- ss.WriteLine("");
- }
+ ss.Write(" ");
+ ss.WriteLine(" ");
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
+ count++;
+ }
+ ss.WriteLine(" ");
+ ss.WriteLine("");
+ }
- private void WriteCombine(SolutionNode solution)
- {
- m_Kernel.Log.Write("Creating SharpDevelop combine and project files");
- foreach(ProjectNode project in solution.Projects)
- {
- if(m_Kernel.AllowProject(project.FilterGroups))
- {
- m_Kernel.Log.Write("...Creating project: {0}", project.Name);
- WriteProject(solution, project);
- }
- }
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
- m_Kernel.Log.Write("");
- string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "cmbx");
- StreamWriter ss = new StreamWriter(combFile);
+ private void WriteCombine(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Creating SharpDevelop combine and project files");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (m_Kernel.AllowProject(project.FilterGroups))
+ {
+ m_Kernel.Log.Write("...Creating project: {0}", project.Name);
+ WriteProject(solution, project);
+ }
+ }
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
-
- using(ss)
- {
- ss.WriteLine("", solution.Name);
-
- int count = 0;
- foreach(ProjectNode project in solution.Projects)
- {
- if(count == 0)
- ss.WriteLine(" ", project.Name);
+ m_Kernel.Log.Write("");
+ string combFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "cmbx");
+ StreamWriter ss = new StreamWriter(combFile);
- ss.WriteLine(" ", project.Name);
- count++;
- }
- ss.WriteLine(" ");
-
- ss.WriteLine(" ");
- foreach(ProjectNode project in solution.Projects)
- {
- string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
- ss.WriteLine(" ",
- Helper.MakeFilePath(path, project.Name, "prjx"));
- }
- ss.WriteLine(" ");
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(combFile));
- count = 0;
- foreach(ConfigurationNode conf in solution.Configurations)
- {
- if(count == 0)
- {
- ss.WriteLine(" ", conf.Name);
- }
+ using (ss)
+ {
+ ss.WriteLine("", solution.Name);
- ss.WriteLine(" ", conf.Name);
- foreach(ProjectNode project in solution.Projects)
- {
- ss.WriteLine(" ", project.Name, conf.Name);
- }
- ss.WriteLine(" ");
+ int count = 0;
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (count == 0)
+ ss.WriteLine(" ", project.Name);
- count++;
- }
- ss.WriteLine(" ");
- ss.WriteLine("");
- }
+ ss.WriteLine(" ", project.Name);
+ count++;
+ }
+ ss.WriteLine(" ");
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
+ ss.WriteLine(" ");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
+ ss.WriteLine(" ",
+ Helper.MakeFilePath(path, project.Name, "prjx"));
+ }
+ ss.WriteLine(" ");
- private void CleanProject(ProjectNode project)
- {
- m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "prjx");
- Helper.DeleteIfExists(projectFile);
- }
+ count = 0;
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ if (count == 0)
+ {
+ ss.WriteLine(" ", conf.Name);
+ }
- private void CleanSolution(SolutionNode solution)
- {
- m_Kernel.Log.Write("Cleaning SharpDevelop combine and project files for", solution.Name);
+ ss.WriteLine(" ", conf.Name);
+ foreach (ProjectNode project in solution.Projects)
+ {
+ ss.WriteLine(" ", project.Name, conf.Name);
+ }
+ ss.WriteLine(" ");
- string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "cmbx");
- Helper.DeleteIfExists(slnFile);
+ count++;
+ }
+ ss.WriteLine(" ");
+ ss.WriteLine("");
+ }
- foreach(ProjectNode project in solution.Projects)
- {
- CleanProject(project);
- }
-
- m_Kernel.Log.Write("");
- }
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
- #endregion
+ private void CleanProject(ProjectNode project)
+ {
+ m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "prjx");
+ Helper.DeleteIfExists(projectFile);
+ }
- #region ITarget Members
+ private void CleanSolution(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Cleaning SharpDevelop combine and project files for", solution.Name);
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public void Write(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode solution in kern.Solutions)
- {
- WriteCombine(solution);
- }
- m_Kernel = null;
- }
+ string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "cmbx");
+ Helper.DeleteIfExists(slnFile);
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public virtual void Clean(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode sol in kern.Solutions)
- {
- CleanSolution(sol);
- }
- m_Kernel = null;
- }
+ foreach (ProjectNode project in solution.Projects)
+ {
+ CleanProject(project);
+ }
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return "sharpdev";
- }
- }
+ m_Kernel.Log.Write("");
+ }
- #endregion
- }
+ #endregion
+
+ #region ITarget Members
+
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public void Write(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode solution in kern.Solutions)
+ {
+ WriteCombine(solution);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public virtual void Clean(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode sol in kern.Solutions)
+ {
+ CleanSolution(sol);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return "sharpdev";
+ }
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/ToolInfo.cs b/Prebuild/src/Core/Targets/ToolInfo.cs
index 935c6744db..1ffef8ab42 100644
--- a/Prebuild/src/Core/Targets/ToolInfo.cs
+++ b/Prebuild/src/Core/Targets/ToolInfo.cs
@@ -4,194 +4,194 @@ using System.Text;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- public struct ToolInfo
- {
- string name;
- string guid;
- string fileExtension;
- string xmlTag;
- string importProject;
+ ///
+ ///
+ ///
+ public struct ToolInfo
+ {
+ string name;
+ string guid;
+ string fileExtension;
+ string xmlTag;
+ string importProject;
- ///
- /// Gets or sets the name.
- ///
- /// The name.
- public string Name
- {
- get
- {
- return name;
- }
- set
- {
- name = value;
- }
- }
+ ///
+ /// Gets or sets the name.
+ ///
+ /// The name.
+ public string Name
+ {
+ get
+ {
+ return name;
+ }
+ set
+ {
+ name = value;
+ }
+ }
- ///
- /// Gets or sets the GUID.
- ///
- /// The GUID.
- public string Guid
- {
- get
- {
- return guid;
- }
- set
- {
- guid = value;
- }
- }
+ ///
+ /// Gets or sets the GUID.
+ ///
+ /// The GUID.
+ public string Guid
+ {
+ get
+ {
+ return guid;
+ }
+ set
+ {
+ guid = value;
+ }
+ }
- ///
- /// Gets or sets the file extension.
- ///
- /// The file extension.
- 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";
- }
- }
- }
- ///
- /// Gets or sets the XML tag.
- ///
- /// The XML tag.
- public string XmlTag
- {
- get
- {
- return xmlTag;
- }
- set
- {
- xmlTag = value;
- }
- }
+ ///
+ /// Gets or sets the file extension.
+ ///
+ /// The file extension.
+ 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";
+ }
+ }
+ }
+ ///
+ /// Gets or sets the XML tag.
+ ///
+ /// The XML tag.
+ public string XmlTag
+ {
+ get
+ {
+ return xmlTag;
+ }
+ set
+ {
+ xmlTag = value;
+ }
+ }
- ///
- /// Gets or sets the import project property.
- ///
- /// The ImportProject tag.
- public string ImportProject
- {
- get
- {
- return importProject;
- }
- set
- {
- importProject = value;
- }
- }
+ ///
+ /// Gets or sets the import project property.
+ ///
+ /// The ImportProject tag.
+ public string ImportProject
+ {
+ get
+ {
+ return importProject;
+ }
+ set
+ {
+ importProject = value;
+ }
+ }
- ///
- /// Initializes a new instance of the class.
- ///
- /// The name.
- /// The GUID.
- /// The file extension.
- /// The XML.
- /// The import project.
- 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;
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name.
+ /// The GUID.
+ /// The file extension.
+ /// The XML.
+ /// The import project.
+ 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;
+ }
- ///
- /// Initializes a new instance of the class.
- ///
- /// The name.
- /// The GUID.
- /// The file extension.
- /// The XML.
- 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";
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name.
+ /// The GUID.
+ /// The file extension.
+ /// The XML.
+ 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";
+ }
- ///
- /// Equals operator
- ///
- /// ToolInfo to compare
- /// true if toolInfos are equal
- public override bool Equals(object obj)
- {
- if (obj == null)
- {
- throw new ArgumentNullException("obj");
- }
- if (obj.GetType() != typeof(ToolInfo))
- return false;
+ ///
+ /// Equals operator
+ ///
+ /// ToolInfo to compare
+ /// true if toolInfos are equal
+ 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));
- }
+ ToolInfo c = (ToolInfo)obj;
+ return ((this.name == c.name) && (this.guid == c.guid) && (this.fileExtension == c.fileExtension) && (this.importProject == c.importProject));
+ }
- ///
- /// Equals operator
- ///
- /// ToolInfo to compare
- /// ToolInfo to compare
- /// True if toolInfos are equal
- 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));
- }
+ ///
+ /// Equals operator
+ ///
+ /// ToolInfo to compare
+ /// ToolInfo to compare
+ /// True if toolInfos are equal
+ 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));
+ }
- ///
- /// Not equals operator
- ///
- /// ToolInfo to compare
- /// ToolInfo to compare
- /// True if toolInfos are not equal
- public static bool operator !=(ToolInfo c1, ToolInfo c2)
- {
- return !(c1 == c2);
- }
+ ///
+ /// Not equals operator
+ ///
+ /// ToolInfo to compare
+ /// ToolInfo to compare
+ /// True if toolInfos are not equal
+ public static bool operator !=(ToolInfo c1, ToolInfo c2)
+ {
+ return !(c1 == c2);
+ }
- ///
- /// Hash Code
- ///
- /// Hash code
- public override int GetHashCode()
- {
- return name.GetHashCode() ^ guid.GetHashCode() ^ this.fileExtension.GetHashCode() ^ this.importProject.GetHashCode() ^ this.xmlTag.GetHashCode();
+ ///
+ /// Hash Code
+ ///
+ /// Hash code
+ public override int GetHashCode()
+ {
+ return name.GetHashCode() ^ guid.GetHashCode() ^ this.fileExtension.GetHashCode() ^ this.importProject.GetHashCode() ^ this.xmlTag.GetHashCode();
- }
- }
+ }
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2002Target.cs b/Prebuild/src/Core/Targets/VS2002Target.cs
index 2292624473..0af0dcd71a 100644
--- a/Prebuild/src/Core/Targets/VS2002Target.cs
+++ b/Prebuild/src/Core/Targets/VS2002Target.cs
@@ -29,59 +29,59 @@ using Prebuild.Core.Attributes;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("vs2002")]
- public class VS2002Target : VS2003Target
- {
- #region Private Methods
+ ///
+ ///
+ ///
+ [Target("vs2002")]
+ public class VS2002Target : VS2003Target
+ {
+ #region Private Methods
- private void SetVS2002()
- {
- this.SolutionVersion = "7.00";
- this.ProductVersion = "7.0.9254";
- this.SchemaVersion = "1.0";
- this.VersionName = "2002";
- this.Version = VSVersion.VS70;
- }
+ private void SetVS2002()
+ {
+ this.SolutionVersion = "7.00";
+ this.ProductVersion = "7.0.9254";
+ this.SchemaVersion = "1.0";
+ this.VersionName = "2002";
+ this.Version = VSVersion.VS70;
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public override void Write(Kernel kern)
- {
- SetVS2002();
- base.Write(kern);
- }
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public override void Write(Kernel kern)
+ {
+ SetVS2002();
+ base.Write(kern);
+ }
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public override void Clean(Kernel kern)
- {
- SetVS2002();
- base.Clean(kern);
- }
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public override void Clean(Kernel kern)
+ {
+ SetVS2002();
+ base.Clean(kern);
+ }
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return "vs2002";
- }
- }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return "vs2002";
+ }
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2003Target.cs b/Prebuild/src/Core/Targets/VS2003Target.cs
index 10e2dc4a71..ca16d84f73 100644
--- a/Prebuild/src/Core/Targets/VS2003Target.cs
+++ b/Prebuild/src/Core/Targets/VS2003Target.cs
@@ -34,560 +34,560 @@ using Prebuild.Core.Utilities;
namespace Prebuild.Core.Targets
{
- [Target("vs2003")]
- public class VS2003Target : ITarget
- {
-
- #region Fields
-
- string solutionVersion = "8.00";
- string productVersion = "7.10.3077";
- string schemaVersion = "2.0";
- string versionName = "2003";
- VSVersion version = VSVersion.VS71;
-
- readonly Dictionary m_Tools = new Dictionary();
- Kernel m_Kernel;
-
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- protected string SolutionVersion
- {
- get
- {
- return solutionVersion;
- }
- set
- {
- solutionVersion = value;
- }
- }
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- protected string ProductVersion
- {
- get
- {
- return productVersion;
- }
- set
- {
- productVersion = value;
- }
- }
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- protected string SchemaVersion
- {
- get
- {
- return schemaVersion;
- }
- set
- {
- schemaVersion = value;
- }
- }
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- protected string VersionName
- {
- get
- {
- return versionName;
- }
- set
- {
- versionName = value;
- }
- }
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- protected VSVersion Version
- {
- get
- {
- return version;
- }
- set
- {
- version = value;
- }
- }
-
- #endregion
-
- #region Constructors
-
- ///
- /// Initializes a new instance of the class.
- ///
- public VS2003Target()
- {
- m_Tools["C#"] = new ToolInfo("C#", "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", "csproj", "CSHARP");
- m_Tools["VB.NET"] = new ToolInfo("VB.NET", "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", "vbproj", "VisualBasic");
- }
-
- #endregion
-
- #region Private Methods
-
- private string MakeRefPath(ProjectNode project)
- {
- string ret = "";
- foreach(ReferencePathNode node in project.ReferencePaths)
- {
- try
- {
- string fullPath = Helper.ResolvePath(node.Path);
- if(ret.Length < 1)
- {
- ret = fullPath;
- }
- else
- {
- ret += ";" + fullPath;
- }
- }
- catch(ArgumentException)
- {
- m_Kernel.Log.Write(LogType.Warning, "Could not resolve reference path: {0}", node.Path);
- }
- }
-
- return ret;
- }
-
- private void WriteProject(SolutionNode solution, ProjectNode project)
- {
- if(!m_Tools.ContainsKey(project.Language))
- {
- throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
- }
-
- ToolInfo toolInfo = m_Tools[project.Language];
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
- StreamWriter ps = new StreamWriter(projectFile);
-
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
-
- using(ps)
- {
- ps.WriteLine("");
- ps.WriteLine(" <{0}", toolInfo.XmlTag);
- ps.WriteLine("\t\t\t\tProjectType = \"Local\"");
- ps.WriteLine("\t\t\t\tProductVersion = \"{0}\"", ProductVersion);
- ps.WriteLine("\t\t\t\tSchemaVersion = \"{0}\"", SchemaVersion);
- ps.WriteLine("\t\t\t\tProjectGuid = \"{{{0}}}\"", project.Guid.ToString().ToUpper());
- ps.WriteLine("\t\t>");
-
- ps.WriteLine("\t\t\t\t");
- ps.WriteLine(" ");
-
- foreach(ConfigurationNode conf in project.Configurations)
- {
- ps.WriteLine("\t\t\t\t ");
- }
-
- ps.WriteLine(" ");
-
- ps.WriteLine(" ");
- foreach(ReferenceNode refr in project.References)
- {
- ps.WriteLine(" ");
- }
- ps.WriteLine(" ");
-
- ps.WriteLine(" ");
- ps.WriteLine(" ");
-
- ps.WriteLine(" ");
-
- foreach(string file in project.Files)
- {
- string fileName = file.Replace(".\\", "");
- ps.WriteLine(" ");
-
- if (project.Files.GetSubType(file) != SubType.Code && project.Files.GetSubType(file) != SubType.Settings)
- {
- ps.WriteLine(" ");
-
- }
- }
- ps.WriteLine(" ");
-
- ps.WriteLine(" ");
- ps.WriteLine(" {0}>", toolInfo.XmlTag);
- ps.WriteLine("");
- }
-
- ps = new StreamWriter(projectFile + ".user");
- using(ps)
- {
- ps.WriteLine("");
- ps.WriteLine(" <{0}>", toolInfo.XmlTag);
- ps.WriteLine(" ");
-
- ps.WriteLine(" ", MakeRefPath(project));
- foreach(ConfigurationNode conf in project.Configurations)
- {
- ps.WriteLine(" ");
- }
- ps.WriteLine(" ");
-
- ps.WriteLine(" ");
- ps.WriteLine(" {0}>", toolInfo.XmlTag);
- ps.WriteLine("");
- }
-
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
-
- ///
- /// Gets the XML doc file.
- ///
- /// The project.
- /// The conf.
- ///
- public static string GetXmlDocFile(ProjectNode project, ConfigurationNode conf)
- {
- if( conf == null )
- {
- throw new ArgumentNullException("conf");
- }
- if( project == null )
- {
- throw new ArgumentNullException("project");
- }
- // if(!(bool)conf.Options["GenerateXmlDocFile"]) //default to none, if the generate option is false
- // {
- // return string.Empty;
- // }
-
- //default to "AssemblyName.xml"
- //string defaultValue = Path.GetFileNameWithoutExtension(project.AssemblyName) + ".xml";
- //return (string)conf.Options["XmlDocFile", defaultValue];
-
- //default to no XmlDocFile file
- return (string)conf.Options["XmlDocFile", ""];
- }
-
- private void WriteSolution(SolutionNode solution)
- {
- m_Kernel.Log.Write("Creating Visual Studio {0} solution and project files", VersionName);
-
- foreach(ProjectNode project in solution.Projects)
- {
- if(m_Kernel.AllowProject(project.FilterGroups))
- {
- m_Kernel.Log.Write("...Creating project: {0}", project.Name);
- WriteProject(solution, project);
- }
- }
-
- m_Kernel.Log.Write("");
- string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
- StreamWriter ss = new StreamWriter(solutionFile);
-
- m_Kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
-
- using(ss)
- {
- ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", SolutionVersion);
- foreach(ProjectNode project in solution.Projects)
- {
- if(!m_Tools.ContainsKey(project.Language))
- {
- throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
- }
-
- ToolInfo toolInfo = m_Tools[project.Language];
-
- string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
- ss.WriteLine("Project(\"{0}\") = \"{1}\", \"{2}\", \"{{{3}}}\"",
- toolInfo.Guid, project.Name, Helper.MakeFilePath(path, project.Name,
- toolInfo.FileExtension), project.Guid.ToString().ToUpper());
-
- ss.WriteLine("\tProjectSection(ProjectDependencies) = postProject");
- ss.WriteLine("\tEndProjectSection");
-
- ss.WriteLine("EndProject");
- }
-
- ss.WriteLine("Global");
-
- ss.WriteLine("\tGlobalSection(SolutionConfiguration) = preSolution");
- foreach(ConfigurationNode conf in solution.Configurations)
- {
- ss.WriteLine("\t\t{0} = {0}", conf.Name);
- }
- ss.WriteLine("\tEndGlobalSection");
-
- ss.WriteLine("\tGlobalSection(ProjectDependencies) = postSolution");
- foreach(ProjectNode project in solution.Projects)
- {
- for(int i = 0; i < project.References.Count; i++)
- {
- ReferenceNode refr = project.References[i];
- if(solution.ProjectsTable.ContainsKey(refr.Name))
- {
- ProjectNode refProject = solution.ProjectsTable[refr.Name];
- ss.WriteLine("\t\t({{{0}}}).{1} = ({{{2}}})",
- project.Guid.ToString().ToUpper()
- , i,
- refProject.Guid.ToString().ToUpper()
- );
- }
- }
- }
- ss.WriteLine("\tEndGlobalSection");
-
- ss.WriteLine("\tGlobalSection(ProjectConfiguration) = postSolution");
- foreach(ProjectNode project in solution.Projects)
- {
- foreach(ConfigurationNode conf in solution.Configurations)
- {
- ss.WriteLine("\t\t{{{0}}}.{1}.ActiveCfg = {1}|.NET",
- project.Guid.ToString().ToUpper(),
- conf.Name);
-
- ss.WriteLine("\t\t{{{0}}}.{1}.Build.0 = {1}|.NET",
- project.Guid.ToString().ToUpper(),
- conf.Name);
- }
- }
- ss.WriteLine("\tEndGlobalSection");
-
- if(solution.Files != null)
- {
- ss.WriteLine("\tGlobalSection(SolutionItems) = postSolution");
- foreach(string file in solution.Files)
- {
- ss.WriteLine("\t\t{0} = {0}", file);
- }
- ss.WriteLine("\tEndGlobalSection");
- }
-
- ss.WriteLine("\tGlobalSection(ExtensibilityGlobals) = postSolution");
- ss.WriteLine("\tEndGlobalSection");
- ss.WriteLine("\tGlobalSection(ExtensibilityAddIns) = postSolution");
- ss.WriteLine("\tEndGlobalSection");
-
- ss.WriteLine("EndGlobal");
- }
-
- m_Kernel.CurrentWorkingDirectory.Pop();
- }
-
- private void CleanProject(ProjectNode project)
- {
- m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
-
- ToolInfo toolInfo = m_Tools[project.Language];
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
- string userFile = projectFile + ".user";
-
- Helper.DeleteIfExists(projectFile);
- Helper.DeleteIfExists(userFile);
- }
-
- private void CleanSolution(SolutionNode solution)
- {
- m_Kernel.Log.Write("Cleaning Visual Studio {0} solution and project files", VersionName, solution.Name);
-
- string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
- string suoFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "suo");
-
- Helper.DeleteIfExists(slnFile);
- Helper.DeleteIfExists(suoFile);
-
- foreach(ProjectNode project in solution.Projects)
- {
- CleanProject(project);
- }
-
- m_Kernel.Log.Write("");
- }
-
- #endregion
-
- #region ITarget Members
-
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public virtual void Write(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode sol in m_Kernel.Solutions)
- {
- WriteSolution(sol);
- }
- m_Kernel = null;
- }
-
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public virtual void Clean(Kernel kern)
- {
- if( kern == null )
- {
- throw new ArgumentNullException("kern");
- }
- m_Kernel = kern;
- foreach(SolutionNode sol in m_Kernel.Solutions)
- {
- CleanSolution(sol);
- }
- m_Kernel = null;
- }
-
- ///
- /// Gets the name.
- ///
- /// The name.
- public virtual string Name
- {
- get
- {
- return "vs2003";
- }
- }
-
- #endregion
- }
+ [Target("vs2003")]
+ public class VS2003Target : ITarget
+ {
+
+ #region Fields
+
+ string solutionVersion = "8.00";
+ string productVersion = "7.10.3077";
+ string schemaVersion = "2.0";
+ string versionName = "2003";
+ VSVersion version = VSVersion.VS71;
+
+ readonly Dictionary m_Tools = new Dictionary();
+ Kernel m_Kernel;
+
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ protected string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ set
+ {
+ solutionVersion = value;
+ }
+ }
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ protected string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ set
+ {
+ productVersion = value;
+ }
+ }
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ protected string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ set
+ {
+ schemaVersion = value;
+ }
+ }
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ protected string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ set
+ {
+ versionName = value;
+ }
+ }
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ protected VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ set
+ {
+ version = value;
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2003Target()
+ {
+ m_Tools["C#"] = new ToolInfo("C#", "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", "csproj", "CSHARP");
+ m_Tools["VB.NET"] = new ToolInfo("VB.NET", "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", "vbproj", "VisualBasic");
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private string MakeRefPath(ProjectNode project)
+ {
+ string ret = "";
+ foreach (ReferencePathNode node in project.ReferencePaths)
+ {
+ try
+ {
+ string fullPath = Helper.ResolvePath(node.Path);
+ if (ret.Length < 1)
+ {
+ ret = fullPath;
+ }
+ else
+ {
+ ret += ";" + fullPath;
+ }
+ }
+ catch (ArgumentException)
+ {
+ m_Kernel.Log.Write(LogType.Warning, "Could not resolve reference path: {0}", node.Path);
+ }
+ }
+
+ return ret;
+ }
+
+ private void WriteProject(SolutionNode solution, ProjectNode project)
+ {
+ if (!m_Tools.ContainsKey(project.Language))
+ {
+ throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
+ }
+
+ ToolInfo toolInfo = m_Tools[project.Language];
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
+ StreamWriter ps = new StreamWriter(projectFile);
+
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
+
+ using (ps)
+ {
+ ps.WriteLine("");
+ ps.WriteLine(" <{0}", toolInfo.XmlTag);
+ ps.WriteLine("\t\t\t\tProjectType = \"Local\"");
+ ps.WriteLine("\t\t\t\tProductVersion = \"{0}\"", ProductVersion);
+ ps.WriteLine("\t\t\t\tSchemaVersion = \"{0}\"", SchemaVersion);
+ ps.WriteLine("\t\t\t\tProjectGuid = \"{{{0}}}\"", project.Guid.ToString().ToUpper());
+ ps.WriteLine("\t\t>");
+
+ ps.WriteLine("\t\t\t\t");
+ ps.WriteLine(" ");
+
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ps.WriteLine("\t\t\t\t ");
+ }
+
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ");
+ foreach (ReferenceNode refr in project.References)
+ {
+ ps.WriteLine(" ");
+ }
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ");
+
+ foreach (string file in project.Files)
+ {
+ string fileName = file.Replace(".\\", "");
+ ps.WriteLine(" ");
+
+ if (project.Files.GetSubType(file) != SubType.Code && project.Files.GetSubType(file) != SubType.Settings)
+ {
+ ps.WriteLine(" ");
+
+ }
+ }
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ");
+ ps.WriteLine(" {0}>", toolInfo.XmlTag);
+ ps.WriteLine("");
+ }
+
+ ps = new StreamWriter(projectFile + ".user");
+ using (ps)
+ {
+ ps.WriteLine("");
+ ps.WriteLine(" <{0}>", toolInfo.XmlTag);
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ", MakeRefPath(project));
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ps.WriteLine(" ");
+ }
+ ps.WriteLine(" ");
+
+ ps.WriteLine(" ");
+ ps.WriteLine(" {0}>", toolInfo.XmlTag);
+ ps.WriteLine("");
+ }
+
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
+
+ ///
+ /// Gets the XML doc file.
+ ///
+ /// The project.
+ /// The conf.
+ ///
+ public static string GetXmlDocFile(ProjectNode project, ConfigurationNode conf)
+ {
+ if (conf == null)
+ {
+ throw new ArgumentNullException("conf");
+ }
+ if (project == null)
+ {
+ throw new ArgumentNullException("project");
+ }
+ // if(!(bool)conf.Options["GenerateXmlDocFile"]) //default to none, if the generate option is false
+ // {
+ // return string.Empty;
+ // }
+
+ //default to "AssemblyName.xml"
+ //string defaultValue = Path.GetFileNameWithoutExtension(project.AssemblyName) + ".xml";
+ //return (string)conf.Options["XmlDocFile", defaultValue];
+
+ //default to no XmlDocFile file
+ return (string)conf.Options["XmlDocFile", ""];
+ }
+
+ private void WriteSolution(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Creating Visual Studio {0} solution and project files", VersionName);
+
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (m_Kernel.AllowProject(project.FilterGroups))
+ {
+ m_Kernel.Log.Write("...Creating project: {0}", project.Name);
+ WriteProject(solution, project);
+ }
+ }
+
+ m_Kernel.Log.Write("");
+ string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
+ StreamWriter ss = new StreamWriter(solutionFile);
+
+ m_Kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
+
+ using (ss)
+ {
+ ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", SolutionVersion);
+ foreach (ProjectNode project in solution.Projects)
+ {
+ if (!m_Tools.ContainsKey(project.Language))
+ {
+ throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
+ }
+
+ ToolInfo toolInfo = m_Tools[project.Language];
+
+ string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
+ ss.WriteLine("Project(\"{0}\") = \"{1}\", \"{2}\", \"{{{3}}}\"",
+ toolInfo.Guid, project.Name, Helper.MakeFilePath(path, project.Name,
+ toolInfo.FileExtension), project.Guid.ToString().ToUpper());
+
+ ss.WriteLine("\tProjectSection(ProjectDependencies) = postProject");
+ ss.WriteLine("\tEndProjectSection");
+
+ ss.WriteLine("EndProject");
+ }
+
+ ss.WriteLine("Global");
+
+ ss.WriteLine("\tGlobalSection(SolutionConfiguration) = preSolution");
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ ss.WriteLine("\t\t{0} = {0}", conf.Name);
+ }
+ ss.WriteLine("\tEndGlobalSection");
+
+ ss.WriteLine("\tGlobalSection(ProjectDependencies) = postSolution");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ for (int i = 0; i < project.References.Count; i++)
+ {
+ ReferenceNode refr = project.References[i];
+ if (solution.ProjectsTable.ContainsKey(refr.Name))
+ {
+ ProjectNode refProject = solution.ProjectsTable[refr.Name];
+ ss.WriteLine("\t\t({{{0}}}).{1} = ({{{2}}})",
+ project.Guid.ToString().ToUpper()
+ , i,
+ refProject.Guid.ToString().ToUpper()
+ );
+ }
+ }
+ }
+ ss.WriteLine("\tEndGlobalSection");
+
+ ss.WriteLine("\tGlobalSection(ProjectConfiguration) = postSolution");
+ foreach (ProjectNode project in solution.Projects)
+ {
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ ss.WriteLine("\t\t{{{0}}}.{1}.ActiveCfg = {1}|.NET",
+ project.Guid.ToString().ToUpper(),
+ conf.Name);
+
+ ss.WriteLine("\t\t{{{0}}}.{1}.Build.0 = {1}|.NET",
+ project.Guid.ToString().ToUpper(),
+ conf.Name);
+ }
+ }
+ ss.WriteLine("\tEndGlobalSection");
+
+ if (solution.Files != null)
+ {
+ ss.WriteLine("\tGlobalSection(SolutionItems) = postSolution");
+ foreach (string file in solution.Files)
+ {
+ ss.WriteLine("\t\t{0} = {0}", file);
+ }
+ ss.WriteLine("\tEndGlobalSection");
+ }
+
+ ss.WriteLine("\tGlobalSection(ExtensibilityGlobals) = postSolution");
+ ss.WriteLine("\tEndGlobalSection");
+ ss.WriteLine("\tGlobalSection(ExtensibilityAddIns) = postSolution");
+ ss.WriteLine("\tEndGlobalSection");
+
+ ss.WriteLine("EndGlobal");
+ }
+
+ m_Kernel.CurrentWorkingDirectory.Pop();
+ }
+
+ private void CleanProject(ProjectNode project)
+ {
+ m_Kernel.Log.Write("...Cleaning project: {0}", project.Name);
+
+ ToolInfo toolInfo = m_Tools[project.Language];
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
+ string userFile = projectFile + ".user";
+
+ Helper.DeleteIfExists(projectFile);
+ Helper.DeleteIfExists(userFile);
+ }
+
+ private void CleanSolution(SolutionNode solution)
+ {
+ m_Kernel.Log.Write("Cleaning Visual Studio {0} solution and project files", VersionName, solution.Name);
+
+ string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
+ string suoFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "suo");
+
+ Helper.DeleteIfExists(slnFile);
+ Helper.DeleteIfExists(suoFile);
+
+ foreach (ProjectNode project in solution.Projects)
+ {
+ CleanProject(project);
+ }
+
+ m_Kernel.Log.Write("");
+ }
+
+ #endregion
+
+ #region ITarget Members
+
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public virtual void Write(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode sol in m_Kernel.Solutions)
+ {
+ WriteSolution(sol);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public virtual void Clean(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ m_Kernel = kern;
+ foreach (SolutionNode sol in m_Kernel.Solutions)
+ {
+ CleanSolution(sol);
+ }
+ m_Kernel = null;
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public virtual string Name
+ {
+ get
+ {
+ return "vs2003";
+ }
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2005Target.cs b/Prebuild/src/Core/Targets/VS2005Target.cs
index 9c70e26a37..16c87a182e 100644
--- a/Prebuild/src/Core/Targets/VS2005Target.cs
+++ b/Prebuild/src/Core/Targets/VS2005Target.cs
@@ -137,9 +137,9 @@ namespace Prebuild.Core.Targets
///
/// Initializes a new instance of the class.
///
- public VS2005Target()
+ public VS2005Target()
: base()
- {
+ {
}
#endregion
diff --git a/Prebuild/src/Core/Targets/VS2008Target.cs b/Prebuild/src/Core/Targets/VS2008Target.cs
index fee4f7f27f..a09b89d1eb 100644
--- a/Prebuild/src/Core/Targets/VS2008Target.cs
+++ b/Prebuild/src/Core/Targets/VS2008Target.cs
@@ -11,86 +11,86 @@ using System.CodeDom.Compiler;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("vs2008")]
- public class VS2008Target : VSGenericTarget
- {
- #region Fields
- string solutionVersion = "10.00";
- string productVersion = "9.0.21022";
- string schemaVersion = "2.0";
- string versionName = "Visual Studio 2008";
- string name = "vs2008";
- VSVersion version = VSVersion.VS90;
+ ///
+ ///
+ ///
+ [Target("vs2008")]
+ public class VS2008Target : VSGenericTarget
+ {
+ #region Fields
+ string solutionVersion = "10.00";
+ string productVersion = "9.0.21022";
+ string schemaVersion = "2.0";
+ string versionName = "Visual Studio 2008";
+ string name = "vs2008";
+ VSVersion version = VSVersion.VS90;
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- public override string SolutionVersion
- {
- get
- {
- return solutionVersion;
- }
- }
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- public override string ProductVersion
- {
- get
- {
- return productVersion;
- }
- }
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- public override string SchemaVersion
- {
- get
- {
- return schemaVersion;
- }
- }
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- public override string VersionName
- {
- get
- {
- return versionName;
- }
- }
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- public override VSVersion Version
- {
- get
- {
- return version;
- }
- }
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return name;
- }
- }
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public override string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ }
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public override string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ }
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public override string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ }
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public override string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ }
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public override VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return name;
+ }
+ }
protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
{
@@ -110,18 +110,18 @@ namespace Prebuild.Core.Targets
get { return "# Visual Studio 2008"; }
}
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public VS2008Target()
- : base()
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2008Target()
+ : base()
+ {
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2010Target.cs b/Prebuild/src/Core/Targets/VS2010Target.cs
index e8aeab5b01..56223e205a 100644
--- a/Prebuild/src/Core/Targets/VS2010Target.cs
+++ b/Prebuild/src/Core/Targets/VS2010Target.cs
@@ -11,96 +11,96 @@ using System.CodeDom.Compiler;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("vs2010")]
- public class VS2010Target : VSGenericTarget
- {
- #region Fields
-
- string solutionVersion = "11.00";
- string productVersion = "9.0.30729";
- string schemaVersion = "2.0";
- string versionName = "Visual Studio 2010";
- string name = "vs2010";
- VSVersion version = VSVersion.VS10;
+ ///
+ ///
+ ///
+ [Target("vs2010")]
+ public class VS2010Target : VSGenericTarget
+ {
+ #region Fields
- #endregion
-
- #region Properties
-
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- public override string SolutionVersion
- {
- get
- {
- return solutionVersion;
- }
- }
-
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- public override string ProductVersion
- {
- get
- {
- return productVersion;
- }
- }
-
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- public override string SchemaVersion
- {
- get
- {
- return schemaVersion;
- }
- }
-
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- public override string VersionName
- {
- get
- {
- return versionName;
- }
- }
-
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- public override VSVersion Version
- {
- get
- {
- return version;
- }
- }
-
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return name;
- }
- }
+ string solutionVersion = "11.00";
+ string productVersion = "9.0.30729";
+ string schemaVersion = "2.0";
+ string versionName = "Visual Studio 2010";
+ string name = "vs2010";
+ VSVersion version = VSVersion.VS10;
+
+ #endregion
+
+ #region Properties
+
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public override string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public override string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public override string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public override string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ }
+
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public override VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return name;
+ }
+ }
protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
{
@@ -110,7 +110,7 @@ namespace Prebuild.Core.Targets
case FrameworkVersion.v4_5:
case FrameworkVersion.v4_0:
case FrameworkVersion.v3_5:
- return "ToolsVersion=\"4.0\"";
+ return "ToolsVersion=\"4.0\"";
case FrameworkVersion.v3_0:
return "ToolsVersion=\"3.0\"";
default:
@@ -123,18 +123,18 @@ namespace Prebuild.Core.Targets
get { return "# Visual Studio 2010"; }
}
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public VS2010Target()
- : base()
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2010Target()
+ : base()
+ {
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2012Target.cs b/Prebuild/src/Core/Targets/VS2012Target.cs
index b1ac0d0819..cf52de9563 100644
--- a/Prebuild/src/Core/Targets/VS2012Target.cs
+++ b/Prebuild/src/Core/Targets/VS2012Target.cs
@@ -6,96 +6,96 @@ using Prebuild.Core.Nodes;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("vs2012")]
- public class VS2012Target : VSGenericTarget
- {
- #region Fields
-
- string solutionVersion = "12.00";
- string productVersion = "11.0.61030.0";
- string schemaVersion = "2.0";
- string versionName = "Visual Studio 2012";
- string name = "vs2012";
- VSVersion version = VSVersion.VS11;
+ ///
+ ///
+ ///
+ [Target("vs2012")]
+ public class VS2012Target : VSGenericTarget
+ {
+ #region Fields
- #endregion
-
- #region Properties
-
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- public override string SolutionVersion
- {
- get
- {
- return solutionVersion;
- }
- }
-
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- public override string ProductVersion
- {
- get
- {
- return productVersion;
- }
- }
-
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- public override string SchemaVersion
- {
- get
- {
- return schemaVersion;
- }
- }
-
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- public override string VersionName
- {
- get
- {
- return versionName;
- }
- }
-
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- public override VSVersion Version
- {
- get
- {
- return version;
- }
- }
-
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return name;
- }
- }
+ string solutionVersion = "12.00";
+ string productVersion = "11.0.61030.0";
+ string schemaVersion = "2.0";
+ string versionName = "Visual Studio 2012";
+ string name = "vs2012";
+ VSVersion version = VSVersion.VS11;
+
+ #endregion
+
+ #region Properties
+
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public override string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public override string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public override string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public override string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ }
+
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public override VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return name;
+ }
+ }
protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
{
@@ -111,7 +111,7 @@ namespace Prebuild.Core.Targets
case FrameworkVersion.v4_5:
case FrameworkVersion.v4_0:
case FrameworkVersion.v3_5:
- return "ToolsVersion=\"4.0\"";
+ return "ToolsVersion=\"4.0\"";
case FrameworkVersion.v3_0:
return "ToolsVersion=\"3.0\"";
default:
@@ -124,18 +124,18 @@ namespace Prebuild.Core.Targets
get { return "# Visual Studio 2012"; }
}
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public VS2012Target()
- : base()
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2012Target()
+ : base()
+ {
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2013Target.cs b/Prebuild/src/Core/Targets/VS2013Target.cs
index 96d8294988..1a0cfd5574 100644
--- a/Prebuild/src/Core/Targets/VS2013Target.cs
+++ b/Prebuild/src/Core/Targets/VS2013Target.cs
@@ -6,96 +6,96 @@ using Prebuild.Core.Nodes;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- [Target("vs2013")]
- public class VS2013Target : VSGenericTarget
- {
- #region Fields
-
- string solutionVersion = "12.00";
- string productVersion = "12.0.31101";
- string schemaVersion = "2.0";
- string versionName = "Visual Studio 2013";
- string name = "vs2013";
- VSVersion version = VSVersion.VS12;
+ ///
+ ///
+ ///
+ [Target("vs2013")]
+ public class VS2013Target : VSGenericTarget
+ {
+ #region Fields
- #endregion
-
- #region Properties
-
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- public override string SolutionVersion
- {
- get
- {
- return solutionVersion;
- }
- }
-
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- public override string ProductVersion
- {
- get
- {
- return productVersion;
- }
- }
-
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- public override string SchemaVersion
- {
- get
- {
- return schemaVersion;
- }
- }
-
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- public override string VersionName
- {
- get
- {
- return versionName;
- }
- }
-
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- public override VSVersion Version
- {
- get
- {
- return version;
- }
- }
-
- ///
- /// Gets the name.
- ///
- /// The name.
- public override string Name
- {
- get
- {
- return name;
- }
- }
+ string solutionVersion = "12.00";
+ string productVersion = "12.0.31101";
+ string schemaVersion = "2.0";
+ string versionName = "Visual Studio 2013";
+ string name = "vs2013";
+ VSVersion version = VSVersion.VS12;
+
+ #endregion
+
+ #region Properties
+
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public override string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public override string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public override string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ }
+
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public override string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ }
+
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public override VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ }
+
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return name;
+ }
+ }
protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
{
@@ -106,10 +106,10 @@ namespace Prebuild.Core.Targets
return "ToolsVersion=\"14.0\"";
case FrameworkVersion.v4_5_1:
case FrameworkVersion.v4_5:
- return "ToolsVersion=\"12.0\"";
+ return "ToolsVersion=\"12.0\"";
case FrameworkVersion.v4_0:
case FrameworkVersion.v3_5:
- return "ToolsVersion=\"4.0\"";
+ return "ToolsVersion=\"4.0\"";
case FrameworkVersion.v3_0:
return "ToolsVersion=\"3.0\"";
default:
@@ -122,18 +122,18 @@ namespace Prebuild.Core.Targets
get { return "# Visual Studio 2013"; }
}
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- public VS2013Target()
- : base()
- {
- }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2013Target()
+ : base()
+ {
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VS2019Target.cs b/Prebuild/src/Core/Targets/VS2019Target.cs
index 52e8162e74..66f17b5244 100644
--- a/Prebuild/src/Core/Targets/VS2019Target.cs
+++ b/Prebuild/src/Core/Targets/VS2019Target.cs
@@ -124,9 +124,9 @@ namespace Prebuild.Core.Targets
case FrameworkVersion.v3_5:
return "ToolsVersion=\"4.0\"";
case FrameworkVersion.v3_0:
- return "ToolsVersion=\"3.0\"";
- default:
- return "ToolsVersion=\"2.0\"";
+ return "ToolsVersion=\"3.0\"";
+ default:
+ return "ToolsVersion=\"2.0\"";
}
}
diff --git a/Prebuild/src/Core/Targets/VSGenericTarget.cs b/Prebuild/src/Core/Targets/VSGenericTarget.cs
index 1e9bc68d0c..6daa71996c 100755
--- a/Prebuild/src/Core/Targets/VSGenericTarget.cs
+++ b/Prebuild/src/Core/Targets/VSGenericTarget.cs
@@ -35,453 +35,455 @@ using System.CodeDom.Compiler;
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- public abstract class VSGenericTarget : ITarget
- {
- #region Fields
+ ///
+ ///
+ ///
+ public abstract class VSGenericTarget : ITarget
+ {
+ #region Fields
- readonly Dictionary tools = new Dictionary();
-// NameValueCollection CopyFiles = new NameValueCollection();
- Kernel kernel;
- #endregion
+ readonly Dictionary tools = new Dictionary();
+ // NameValueCollection CopyFiles = new NameValueCollection();
+ Kernel kernel;
+ #endregion
- #region Properties
- ///
- /// Gets or sets the solution version.
- ///
- /// The solution version.
- public abstract string SolutionVersion { get; }
- ///
- /// Gets or sets the product version.
- ///
- /// The product version.
- public abstract string ProductVersion { get; }
- ///
- /// Gets or sets the schema version.
- ///
- /// The schema version.
- public abstract string SchemaVersion { get; }
- ///
- /// Gets or sets the name of the version.
- ///
- /// The name of the version.
- public abstract string VersionName { get; }
- ///
- /// Gets or sets the version.
- ///
- /// The version.
- public abstract VSVersion Version { get; }
- ///
- /// Gets the name.
- ///
- /// The name.
- public abstract string Name { get; }
+ #region Properties
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public abstract string SolutionVersion { get; }
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public abstract string ProductVersion { get; }
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public abstract string SchemaVersion { get; }
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public abstract string VersionName { get; }
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public abstract VSVersion Version { get; }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public abstract string Name { get; }
- protected abstract string GetToolsVersionXml(FrameworkVersion version);
- public abstract string SolutionTag { get; }
+ protected abstract string GetToolsVersionXml(FrameworkVersion version);
+ public abstract string SolutionTag { get; }
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- protected VSGenericTarget()
- {
- tools["C#"] = new ToolInfo("C#", "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", "csproj", "CSHARP", "$(MSBuildBinPath)\\Microsoft.CSharp.targets");
- tools["Database"] = new ToolInfo("Database", "{4F174C21-8C12-11D0-8340-0000F80270F8}", "dbp", "UNKNOWN");
- tools["Boo"] = new ToolInfo("Boo", "{45CEA7DC-C2ED-48A6-ACE0-E16144C02365}", "booproj", "Boo", "$(BooBinPath)\\Boo.Microsoft.Build.targets");
- tools["VisualBasic"] = new ToolInfo("VisualBasic", "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", "vbproj", "VisualBasic", "$(MSBuildBinPath)\\Microsoft.VisualBasic.Targets");
- tools["Folder"] = new ToolInfo("Folder", "{2150E333-8FDC-42A3-9474-1A3956D46DE8}", null, null);
- }
-
- #endregion
-
- #region Private Methods
-
- private string MakeRefPath(ProjectNode project)
- {
- string ret = "";
- foreach (ReferencePathNode node in project.ReferencePaths)
- {
- try
- {
- string fullPath = Helper.ResolvePath(node.Path);
- if (ret.Length < 1)
- {
- ret = fullPath;
- }
- else
- {
- ret += ";" + fullPath;
- }
- }
- catch (ArgumentException)
- {
- kernel.Log.Write(LogType.Warning, "Could not resolve reference path: {0}", node.Path);
- }
- }
-
- return ret;
- }
-
- private static ProjectNode FindProjectInSolution(string name, SolutionNode solution)
- {
- SolutionNode node = solution;
-
- while (node.Parent is SolutionNode)
- node = node.Parent as SolutionNode;
-
- return FindProjectInSolutionRecursively(name, node);
- }
-
- private static ProjectNode FindProjectInSolutionRecursively(string name, SolutionNode solution)
- {
- if (solution.ProjectsTable.ContainsKey(name))
- return solution.ProjectsTable[name];
-
- foreach (SolutionNode child in solution.Solutions)
- {
- ProjectNode node = FindProjectInSolutionRecursively(name, child);
- if (node != null)
- return node;
- }
-
- return null;
- }
-
- private void WriteProject(SolutionNode solution, ProjectNode project)
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ protected VSGenericTarget()
{
- if (!tools.ContainsKey(project.Language))
+ tools["C#"] = new ToolInfo("C#", "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", "csproj", "CSHARP", "$(MSBuildBinPath)\\Microsoft.CSharp.targets");
+ tools["Database"] = new ToolInfo("Database", "{4F174C21-8C12-11D0-8340-0000F80270F8}", "dbp", "UNKNOWN");
+ tools["Boo"] = new ToolInfo("Boo", "{45CEA7DC-C2ED-48A6-ACE0-E16144C02365}", "booproj", "Boo", "$(BooBinPath)\\Boo.Microsoft.Build.targets");
+ tools["VisualBasic"] = new ToolInfo("VisualBasic", "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", "vbproj", "VisualBasic", "$(MSBuildBinPath)\\Microsoft.VisualBasic.Targets");
+ tools["Folder"] = new ToolInfo("Folder", "{2150E333-8FDC-42A3-9474-1A3956D46DE8}", null, null);
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private string MakeRefPath(ProjectNode project)
+ {
+ string ret = "";
+ foreach (ReferencePathNode node in project.ReferencePaths)
{
- throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
- }
+ try
+ {
+ string fullPath = Helper.ResolvePath(node.Path);
+ if (ret.Length < 1)
+ {
+ ret = fullPath;
+ }
+ else
+ {
+ ret += ";" + fullPath;
+ }
+ }
+ catch (ArgumentException)
+ {
+ kernel.Log.Write(LogType.Warning, "Could not resolve reference path: {0}", node.Path);
+ }
+ }
- ToolInfo toolInfo = tools[project.Language];
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
- StreamWriter ps = new StreamWriter(projectFile);
+ return ret;
+ }
- kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
+ private static ProjectNode FindProjectInSolution(string name, SolutionNode solution)
+ {
+ SolutionNode node = solution;
- FrameworkVersion fv = project.FrameworkVersion;
- if (fv == FrameworkVersion.net5_0 || fv == FrameworkVersion.net6_0 || fv == FrameworkVersion.netstandard2_0)
+ while (node.Parent is SolutionNode)
+ node = node.Parent as SolutionNode;
+
+ return FindProjectInSolutionRecursively(name, node);
+ }
+
+ private static ProjectNode FindProjectInSolutionRecursively(string name, SolutionNode solution)
+ {
+ if (solution.ProjectsTable.ContainsKey(name))
+ return solution.ProjectsTable[name];
+
+ foreach (SolutionNode child in solution.Solutions)
{
- // Write the newer .csproj file format
- WriteProjectDotNet(solution, project, ps);
- }
- else
- {
- WriteProjectFramework(solution, project, toolInfo, projectFile, ps);
- }
+ ProjectNode node = FindProjectInSolutionRecursively(name, child);
+ if (node != null)
+ return node;
+ }
- kernel.CurrentWorkingDirectory.Pop();
- }
+ return null;
+ }
- private void WriteProjectFramework(SolutionNode solution, ProjectNode project, ToolInfo toolInfo, string projectFile, StreamWriter ps)
+ private void WriteProject(SolutionNode solution, ProjectNode project)
+ {
+ if (!tools.ContainsKey(project.Language))
+ {
+ throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
+ }
+
+ ToolInfo toolInfo = tools[project.Language];
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
+ StreamWriter ps = new StreamWriter(projectFile);
+
+ kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
+
+ FrameworkVersion fv = project.FrameworkVersion;
+ if (fv == FrameworkVersion.net5_0 || fv == FrameworkVersion.net6_0 || fv == FrameworkVersion.netstandard2_0)
+ {
+ // Write the newer .csproj file format
+ WriteProjectDotNet(solution, project, ps);
+ }
+ else
+ {
+ WriteProjectFramework(solution, project, toolInfo, projectFile, ps);
+ }
+
+ kernel.CurrentWorkingDirectory.Pop();
+ }
+
+ private void WriteProjectFramework(SolutionNode solution, ProjectNode project, ToolInfo toolInfo, string projectFile, StreamWriter ps)
{
- #region Project File
- using (ps)
- {
+ #region Project File
+ using (ps)
+ {
string targets = "";
- if(project.Files.CopyFiles > 0)
+ if (project.Files.CopyFiles > 0)
targets = "Build;CopyFiles";
else
targets = "Build";
- ps.WriteLine("", targets, GetToolsVersionXml(project.FrameworkVersion));
- ps.WriteLine(" ");
- ps.WriteLine(" Local");
- ps.WriteLine(" {0}", ProductVersion);
- ps.WriteLine(" {0}", SchemaVersion);
- ps.WriteLine(" {{{0}}}", project.Guid.ToString().ToUpper());
+ ps.WriteLine("", targets, GetToolsVersionXml(project.FrameworkVersion));
+ ps.WriteLine(" ");
+ ps.WriteLine(" Local");
+ ps.WriteLine(" {0}", ProductVersion);
+ ps.WriteLine(" {0}", SchemaVersion);
+ ps.WriteLine(" {{{0}}}", project.Guid.ToString().ToUpper());
- // Visual Studio has a hard coded guid for the project type
- if (project.Type == ProjectType.Web)
- ps.WriteLine(" {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}");
- ps.WriteLine(" Debug");
- ps.WriteLine(" {0}", project.AppIcon);
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" {0}", project.AssemblyName);
- foreach (ConfigurationNode conf in project.Configurations)
- {
- if (conf.Options.KeyFile != "")
- {
- ps.WriteLine(" {0}", conf.Options.KeyFile);
- ps.WriteLine(" true");
- break;
- }
- }
- ps.WriteLine(" JScript");
- ps.WriteLine(" Grid");
- ps.WriteLine(" IE50");
- ps.WriteLine(" false");
- ps.WriteLine(" {0}", project.FrameworkVersion.ToString().Replace("_", "."));
+ // Visual Studio has a hard coded guid for the project type
+ if (project.Type == ProjectType.Web)
+ ps.WriteLine(" {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}");
+ ps.WriteLine(" Debug");
+ ps.WriteLine(" {0}", project.AppIcon);
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" {0}", project.AssemblyName);
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ if (conf.Options.KeyFile != "")
+ {
+ ps.WriteLine(" {0}", conf.Options.KeyFile);
+ ps.WriteLine(" true");
+ break;
+ }
+ }
+ ps.WriteLine(" JScript");
+ ps.WriteLine(" Grid");
+ ps.WriteLine(" IE50");
+ ps.WriteLine(" false");
+ ps.WriteLine(" {0}", project.FrameworkVersion.ToString().Replace("_", "."));
- ps.WriteLine(" {0}", project.Type == ProjectType.Web ? ProjectType.Library.ToString() : project.Type.ToString());
- ps.WriteLine(" {0}", project.DesignerFolder);
- ps.WriteLine(" {0}", project.RootNamespace);
- ps.WriteLine(" {0}", project.StartupObject);
- if (string.IsNullOrEmpty(project.DebugStartParameters))
- {
- ps.WriteLine(" {0}", project.DebugStartParameters);
- }
- ps.WriteLine(" ");
- ps.WriteLine(" ");
+ ps.WriteLine(" {0}", project.Type == ProjectType.Web ? ProjectType.Library.ToString() : project.Type.ToString());
+ ps.WriteLine(" {0}", project.DesignerFolder);
+ ps.WriteLine(" {0}", project.RootNamespace);
+ ps.WriteLine(" {0}", project.StartupObject);
+ if (string.IsNullOrEmpty(project.DebugStartParameters))
+ {
+ ps.WriteLine(" {0}", project.DebugStartParameters);
+ }
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
- ps.WriteLine(" ");
+ ps.WriteLine(" ");
if (!string.IsNullOrEmpty(project.ApplicationManifest))
{
ps.WriteLine(" ");
ps.WriteLine(" " + project.ApplicationManifest + "");
ps.WriteLine(" ");
}
- foreach (ConfigurationNode conf in project.Configurations)
- {
- ps.Write(" ", conf.Name, conf.Platform);
- ps.WriteLine(" {0}", conf.Options["AllowUnsafe"]);
- ps.WriteLine(" {0}", conf.Options["BaseAddress"]);
- ps.WriteLine(" {0}", conf.Options["CheckUnderflowOverflow"]);
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" {0}",
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ps.Write(" ", conf.Name, conf.Platform);
+ ps.WriteLine(" {0}", conf.Options["AllowUnsafe"]);
+ ps.WriteLine(" {0}", conf.Options["BaseAddress"]);
+ ps.WriteLine(" {0}", conf.Options["CheckUnderflowOverflow"]);
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" {0}",
conf.Options["CompilerDefines"].ToString() == "" ? this.kernel.ForcedConditionals : conf.Options["CompilerDefines"] + ";" + kernel.ForcedConditionals);
- ps.WriteLine(" {0}", Helper.NormalizePath(conf.Options["XmlDocFile"].ToString()));
- ps.WriteLine(" {0}", conf.Options["DebugInformation"]);
- ps.WriteLine(" {0}", conf.Options["FileAlignment"]);
- ps.WriteLine(" {0}", conf.Options["OptimizeCode"]);
- if (project.Type != ProjectType.Web)
- ps.WriteLine(" {0}",
- Helper.EndPath(Helper.NormalizePath(conf.Options["OutputPath"].ToString())));
- else
- ps.WriteLine(" {0}",
- Helper.EndPath(Helper.NormalizePath("bin\\")));
+ ps.WriteLine(" {0}", Helper.NormalizePath(conf.Options["XmlDocFile"].ToString()));
+ ps.WriteLine(" {0}", conf.Options["DebugInformation"]);
+ ps.WriteLine(" {0}", conf.Options["FileAlignment"]);
+ ps.WriteLine(" {0}", conf.Options["OptimizeCode"]);
+ if (project.Type != ProjectType.Web)
+ ps.WriteLine(" {0}",
+ Helper.EndPath(Helper.NormalizePath(conf.Options["OutputPath"].ToString())));
+ else
+ ps.WriteLine(" {0}",
+ Helper.EndPath(Helper.NormalizePath("bin\\")));
- ps.WriteLine(" {0}", conf.Options["RegisterComInterop"]);
- ps.WriteLine(" {0}", conf.Options["RemoveIntegerChecks"]);
- ps.WriteLine(" {0}", conf.Options["WarningsAsErrors"]);
- ps.WriteLine(" {0}", conf.Options["WarningLevel"]);
- ps.WriteLine(" {0}", conf.Options["NoStdLib"]);
- ps.WriteLine(" {0}", conf.Options["SuppressWarnings"]);
- ps.WriteLine(" {0}", conf.Platform);
- ps.WriteLine(" {0}",conf.Options["Prefer32Bit"]);
- ps.WriteLine(" ");
- }
-
- //ps.WriteLine(" ");
-
- // Output warnings if NET6 stuff is in a Framework4 definition
- if (project.ProjectReferences.Count > 0) {
- kernel.Log.Write(LogType.Warning, "ProjectReference is not processed for Frameworks.");
- }
- if (project.PackageReferences.Count > 0) {
- kernel.Log.Write(LogType.Warning, "PackageReference is not processed for Frameworks.");
+ ps.WriteLine(" {0}", conf.Options["RegisterComInterop"]);
+ ps.WriteLine(" {0}", conf.Options["RemoveIntegerChecks"]);
+ ps.WriteLine(" {0}", conf.Options["WarningsAsErrors"]);
+ ps.WriteLine(" {0}", conf.Options["WarningLevel"]);
+ ps.WriteLine(" {0}", conf.Options["NoStdLib"]);
+ ps.WriteLine(" {0}", conf.Options["SuppressWarnings"]);
+ ps.WriteLine(" {0}", conf.Platform);
+ ps.WriteLine(" {0}", conf.Options["Prefer32Bit"]);
+ ps.WriteLine(" ");
}
- // Output the ItemGroup for project.References
- WriteProjectReferences(solution, project, ps);
+ //ps.WriteLine(" ");
- // ps.WriteLine(" ");
- ps.WriteLine(" ");
+ // Output warnings if NET6 stuff is in a Framework4 definition
+ if (project.ProjectReferences.Count > 0)
+ {
+ kernel.Log.Write(LogType.Warning, "ProjectReference is not processed for Frameworks.");
+ }
+ if (project.PackageReferences.Count > 0)
+ {
+ kernel.Log.Write(LogType.Warning, "PackageReference is not processed for Frameworks.");
+ }
- // ps.WriteLine(" ");
- List list = new List();
+ // Output the ItemGroup for project.References
+ WriteProjectReferences(solution, project, ps);
- foreach (string path in project.Files)
- {
- string lower = path.ToLower();
- if (lower.EndsWith(".resx"))
- {
- string codebehind = String.Format("{0}.Designer{1}", path.Substring(0, path.LastIndexOf('.')), toolInfo.LanguageExtension);
- if (!list.Contains(codebehind))
- list.Add(codebehind);
- }
+ // ps.WriteLine(" ");
+ ps.WriteLine(" ");
- }
+ // ps.WriteLine(" ");
+ List list = new List();
+
+ foreach (string path in project.Files)
+ {
+ string lower = path.ToLower();
+ if (lower.EndsWith(".resx"))
+ {
+ string codebehind = String.Format("{0}.Designer{1}", path.Substring(0, path.LastIndexOf('.')), toolInfo.LanguageExtension);
+ if (!list.Contains(codebehind))
+ list.Add(codebehind);
+ }
+
+ }
#region Files
foreach (string filePath in project.Files)
- {
+ {
// Add the filePath with the destination as the key
// will use it later to form the copy parameters with Include lists
// for each destination
if (project.Files.GetBuildAction(filePath) == BuildAction.Copy)
continue;
- // if (file == "Properties\\Bind.Designer.cs")
- // {
- // Console.WriteLine("Wait a minute!");
- // Console.WriteLine(project.Files.GetSubType(file).ToString());
- // }
- SubType subType = project.Files.GetSubType(filePath);
-
- // Visual Studio chokes on file names if forward slash is used as a path separator
- // instead of backslash. So we must make sure that all file paths written to the
- // project file use \ as a path separator.
- string file = filePath.Replace(@"/", @"\");
+ // if (file == "Properties\\Bind.Designer.cs")
+ // {
+ // Console.WriteLine("Wait a minute!");
+ // Console.WriteLine(project.Files.GetSubType(file).ToString());
+ // }
+ SubType subType = project.Files.GetSubType(filePath);
- if (subType != SubType.Code && subType != SubType.Settings && subType != SubType.Designer
- && subType != SubType.CodeBehind)
- {
- ps.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
- ps.WriteLine(" {0}", Path.GetFileName(file));
- ps.WriteLine(" Designer");
- ps.WriteLine(" ");
- //
- }
+ // Visual Studio chokes on file names if forward slash is used as a path separator
+ // instead of backslash. So we must make sure that all file paths written to the
+ // project file use \ as a path separator.
+ string file = filePath.Replace(@"/", @"\");
- if (subType == SubType.Designer)
- {
- ps.WriteLine(" ", file);
-
- string autogen_name = file.Substring(0, file.LastIndexOf('.')) + ".Designer.cs";
- string dependent_name = filePath.Substring(0, file.LastIndexOf('.')) + ".cs";
+ if (subType != SubType.Code && subType != SubType.Settings && subType != SubType.Designer
+ && subType != SubType.CodeBehind)
+ {
+ ps.WriteLine(" ", file.Substring(0, file.LastIndexOf('.')) + ".resx");
+ ps.WriteLine(" {0}", Path.GetFileName(file));
+ ps.WriteLine(" Designer");
+ ps.WriteLine(" ");
+ //
+ }
- // Check for a parent .cs file with the same name as this designer file
- if (File.Exists(Helper.NormalizePath(dependent_name)))
- {
- ps.WriteLine(" {0}", Path.GetFileName(dependent_name));
- }
- else
- {
- ps.WriteLine(" ResXFileCodeGenerator");
- ps.WriteLine(" {0}", Path.GetFileName(autogen_name));
- ps.WriteLine(" " + subType + "");
- }
-
- ps.WriteLine(" ");
- if (File.Exists(Helper.NormalizePath(autogen_name)))
- {
- ps.WriteLine(" ", autogen_name);
- //ps.WriteLine(" True");
+ if (subType == SubType.Designer)
+ {
+ ps.WriteLine(" ", file);
- // If a parent .cs file exists, link this autogen file to it. Otherwise link
- // to the designer file
- if (File.Exists(dependent_name))
- {
- ps.WriteLine(" {0}", Path.GetFileName(dependent_name));
- }
- else
- {
- ps.WriteLine(" True");
- ps.WriteLine(" {0}", Path.GetFileName(filePath));
- }
-
- ps.WriteLine(" ");
- }
- list.Add(autogen_name);
- }
- if (subType == SubType.Settings)
- {
- ps.Write(" <{0} ", project.Files.GetBuildAction(filePath));
- ps.WriteLine("Include=\"{0}\">", file);
- string fileName = Path.GetFileName(filePath);
- if (project.Files.GetBuildAction(filePath) == BuildAction.None)
- {
- ps.WriteLine(" SettingsSingleFileGenerator");
- ps.WriteLine(" {0}", fileName.Substring(0, fileName.LastIndexOf('.')) + ".Designer.cs");
- }
- else
- {
- ps.WriteLine(" Code");
- ps.WriteLine(" True");
- ps.WriteLine(" True");
- string fileNameShort = fileName.Substring(0, fileName.LastIndexOf('.'));
- string fileNameShorter = fileNameShort.Substring(0, fileNameShort.LastIndexOf('.'));
- ps.WriteLine(" {0}", Path.GetFileName(fileNameShorter + ".settings"));
- }
- ps.WriteLine(" {0}>", project.Files.GetBuildAction(filePath));
- }
- else if (subType != SubType.Designer)
- {
- string path = Helper.NormalizePath(file);
- string path_lower = path.ToLower();
+ string autogen_name = file.Substring(0, file.LastIndexOf('.')) + ".Designer.cs";
+ string dependent_name = filePath.Substring(0, file.LastIndexOf('.')) + ".cs";
- if (!list.Contains(filePath))
- {
- ps.Write(" <{0} ", project.Files.GetBuildAction(filePath));
+ // Check for a parent .cs file with the same name as this designer file
+ if (File.Exists(Helper.NormalizePath(dependent_name)))
+ {
+ ps.WriteLine(" {0}", Path.GetFileName(dependent_name));
+ }
+ else
+ {
+ ps.WriteLine(" ResXFileCodeGenerator");
+ ps.WriteLine(" {0}", Path.GetFileName(autogen_name));
+ ps.WriteLine(" " + subType + "");
+ }
- int startPos = 0;
- if (project.Files.GetPreservePath(filePath))
- {
- while ((@"./\").IndexOf(file.Substring(startPos, 1)) != -1)
- startPos++;
+ ps.WriteLine(" ");
+ if (File.Exists(Helper.NormalizePath(autogen_name)))
+ {
+ ps.WriteLine(" ", autogen_name);
+ //ps.WriteLine(" True");
- }
- else
- {
- startPos = file.LastIndexOf(Path.GetFileName(path));
- }
-
- // be sure to write out the path with backslashes so VS recognizes
- // the file properly.
- ps.WriteLine("Include=\"{0}\">", file);
+ // If a parent .cs file exists, link this autogen file to it. Otherwise link
+ // to the designer file
+ if (File.Exists(dependent_name))
+ {
+ ps.WriteLine(" {0}", Path.GetFileName(dependent_name));
+ }
+ else
+ {
+ ps.WriteLine(" True");
+ ps.WriteLine(" {0}", Path.GetFileName(filePath));
+ }
- int last_period_index = file.LastIndexOf('.');
+ ps.WriteLine(" ");
+ }
+ list.Add(autogen_name);
+ }
+ if (subType == SubType.Settings)
+ {
+ ps.Write(" <{0} ", project.Files.GetBuildAction(filePath));
+ ps.WriteLine("Include=\"{0}\">", file);
+ string fileName = Path.GetFileName(filePath);
+ if (project.Files.GetBuildAction(filePath) == BuildAction.None)
+ {
+ ps.WriteLine(" SettingsSingleFileGenerator");
+ ps.WriteLine(" {0}", fileName.Substring(0, fileName.LastIndexOf('.')) + ".Designer.cs");
+ }
+ else
+ {
+ ps.WriteLine(" Code");
+ ps.WriteLine(" True");
+ ps.WriteLine(" True");
+ string fileNameShort = fileName.Substring(0, fileName.LastIndexOf('.'));
+ string fileNameShorter = fileNameShort.Substring(0, fileNameShort.LastIndexOf('.'));
+ ps.WriteLine(" {0}", Path.GetFileName(fileNameShorter + ".settings"));
+ }
+ ps.WriteLine(" {0}>", project.Files.GetBuildAction(filePath));
+ }
+ else if (subType != SubType.Designer)
+ {
+ string path = Helper.NormalizePath(file);
+ string path_lower = path.ToLower();
+
+ if (!list.Contains(filePath))
+ {
+ ps.Write(" <{0} ", project.Files.GetBuildAction(filePath));
+
+ int startPos = 0;
+ if (project.Files.GetPreservePath(filePath))
+ {
+ while ((@"./\").IndexOf(file.Substring(startPos, 1)) != -1)
+ startPos++;
+
+ }
+ else
+ {
+ startPos = file.LastIndexOf(Path.GetFileName(path));
+ }
+
+ // be sure to write out the path with backslashes so VS recognizes
+ // the file properly.
+ ps.WriteLine("Include=\"{0}\">", file);
+
+ int last_period_index = file.LastIndexOf('.');
string short_file_name = (last_period_index >= 0)
? file.Substring(0, last_period_index)
: file;
- string extension = Path.GetExtension(path);
- // make this upper case, so that when File.Exists tests for the
- // existence of a designer file on a case-sensitive platform,
- // it is correctly identified.
- string designer_format = string.Format(".Designer{0}", extension);
+ string extension = Path.GetExtension(path);
+ // make this upper case, so that when File.Exists tests for the
+ // existence of a designer file on a case-sensitive platform,
+ // it is correctly identified.
+ string designer_format = string.Format(".Designer{0}", extension);
- if (path_lower.EndsWith(designer_format.ToLowerInvariant()))
- {
- int designer_index = path.IndexOf(designer_format);
- string file_name = path.Substring(0, designer_index);
+ if (path_lower.EndsWith(designer_format.ToLowerInvariant()))
+ {
+ int designer_index = path.IndexOf(designer_format);
+ string file_name = path.Substring(0, designer_index);
- // There are two corrections to the next lines:
- // 1. Fix the connection between a designer file and a form
- // or usercontrol that don't have an associated resx file.
- // 2. Connect settings files to associated designer files.
- if (File.Exists(file_name + extension))
- ps.WriteLine(" {0}", Path.GetFileName(file_name + extension));
- else if (File.Exists(file_name + ".resx"))
- ps.WriteLine(" {0}", Path.GetFileName(file_name + ".resx"));
- else if (File.Exists(file_name + ".settings"))
- {
- ps.WriteLine(" {0}", Path.GetFileName(file_name + ".settings"));
- ps.WriteLine(" True");
- ps.WriteLine(" True");
- }
- }
- else if (subType == SubType.CodeBehind)
- {
- ps.WriteLine(" {0}", Path.GetFileName(short_file_name));
- }
- if (project.Files.GetIsLink(filePath))
- {
- string alias = project.Files.GetLinkPath(filePath);
- alias += file.Substring(startPos);
- alias = Helper.NormalizePath(alias);
- ps.WriteLine(" {0}", alias);
- }
- else if (project.Files.GetBuildAction(filePath) != BuildAction.None)
- {
- if (project.Files.GetBuildAction(filePath) != BuildAction.EmbeddedResource)
- {
- ps.WriteLine(" {0}", subType);
- }
- }
+ // There are two corrections to the next lines:
+ // 1. Fix the connection between a designer file and a form
+ // or usercontrol that don't have an associated resx file.
+ // 2. Connect settings files to associated designer files.
+ if (File.Exists(file_name + extension))
+ ps.WriteLine(" {0}", Path.GetFileName(file_name + extension));
+ else if (File.Exists(file_name + ".resx"))
+ ps.WriteLine(" {0}", Path.GetFileName(file_name + ".resx"));
+ else if (File.Exists(file_name + ".settings"))
+ {
+ ps.WriteLine(" {0}", Path.GetFileName(file_name + ".settings"));
+ ps.WriteLine(" True");
+ ps.WriteLine(" True");
+ }
+ }
+ else if (subType == SubType.CodeBehind)
+ {
+ ps.WriteLine(" {0}", Path.GetFileName(short_file_name));
+ }
+ if (project.Files.GetIsLink(filePath))
+ {
+ string alias = project.Files.GetLinkPath(filePath);
+ alias += file.Substring(startPos);
+ alias = Helper.NormalizePath(alias);
+ ps.WriteLine(" {0}", alias);
+ }
+ else if (project.Files.GetBuildAction(filePath) != BuildAction.None)
+ {
+ if (project.Files.GetBuildAction(filePath) != BuildAction.EmbeddedResource)
+ {
+ ps.WriteLine(" {0}", subType);
+ }
+ }
- if (project.Files.GetCopyToOutput(filePath) != CopyToOutput.Never)
- {
- ps.WriteLine(" {0}", project.Files.GetCopyToOutput(filePath));
- }
+ if (project.Files.GetCopyToOutput(filePath) != CopyToOutput.Never)
+ {
+ ps.WriteLine(" {0}", project.Files.GetCopyToOutput(filePath));
+ }
- ps.WriteLine(" {0}>", project.Files.GetBuildAction(filePath));
- }
- }
- }
+ ps.WriteLine(" {0}>", project.Files.GetBuildAction(filePath));
+ }
+ }
+ }
ps.WriteLine(" ");
#endregion
@@ -489,7 +491,8 @@ namespace Prebuild.Core.Targets
* Copy Task
*
*/
- if ( project.Files.CopyFiles > 0 ) {
+ if (project.Files.CopyFiles > 0)
+ {
Dictionary IncludeTags = new Dictionary();
int TagCount = 0;
@@ -518,81 +521,81 @@ namespace Prebuild.Core.Targets
ps.WriteLine(" ");
}
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine(" ");
- ps.WriteLine("");
- }
- #endregion
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ ps.WriteLine("");
+ }
+ #endregion
- #region User File
+ #region User File
- ps = new StreamWriter(projectFile + ".user");
- using (ps)
- {
- // Get the first configuration from the project.
- ConfigurationNode firstConfiguration = null;
-
- if (project.Configurations.Count > 0)
- {
- firstConfiguration = project.Configurations[0];
- }
-
- ps.WriteLine("");
- //ps.WriteLine( "" );
- //ps.WriteLine(" <{0}>", toolInfo.XMLTag);
- //ps.WriteLine(" ");
- ps.WriteLine(" ");
- //ps.WriteLine(" ", MakeRefPath(project));
-
- if (firstConfiguration != null)
- {
- ps.WriteLine(" {0}", firstConfiguration.Name);
- ps.WriteLine(" {0}", firstConfiguration.Platform);
- }
-
- ps.WriteLine(" {0}", MakeRefPath(project));
- ps.WriteLine(" {0}", ProductVersion);
- ps.WriteLine(" ProjectFiles");
- ps.WriteLine(" 0");
- ps.WriteLine(" ");
- foreach (ConfigurationNode conf in project.Configurations)
- {
- ps.Write(" ");
- }
- ps.WriteLine("");
- }
- #endregion
- }
-
- private void WriteProjectDotNet(SolutionNode solution, ProjectNode project, StreamWriter ps)
- {
- #region Project File
- using (ps)
+ ps = new StreamWriter(projectFile + ".user");
+ using (ps)
{
- ps.WriteLine("");
- ps.WriteLine();
+ // Get the first configuration from the project.
+ ConfigurationNode firstConfiguration = null;
- ps.WriteLine(" ");
- ps.WriteLine(" {0}", project.FrameworkVersion.ToString().Replace("_","."));
- ps.WriteLine(" {0}", project.Name);
- ps.WriteLine(" ");
- ps.WriteLine();
-
- // For .NET5/6 files, the Configuration section does not specify a build target
- // so here we look for the "unknown" target type for the specified parameters.
- foreach (ConfigurationNode conf in project.Configurations)
+ if (project.Configurations.Count > 0)
{
- if (conf.Name == "unknown")
+ firstConfiguration = project.Configurations[0];
+ }
+
+ ps.WriteLine("");
+ //ps.WriteLine( "" );
+ //ps.WriteLine(" <{0}>", toolInfo.XMLTag);
+ //ps.WriteLine(" ");
+ ps.WriteLine(" ");
+ //ps.WriteLine(" ", MakeRefPath(project));
+
+ if (firstConfiguration != null)
+ {
+ ps.WriteLine(" {0}", firstConfiguration.Name);
+ ps.WriteLine(" {0}", firstConfiguration.Platform);
+ }
+
+ ps.WriteLine(" {0}", MakeRefPath(project));
+ ps.WriteLine(" {0}", ProductVersion);
+ ps.WriteLine(" ProjectFiles");
+ ps.WriteLine(" 0");
+ ps.WriteLine(" ");
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ ps.Write(" ");
+ }
+ ps.WriteLine("");
+ }
+ #endregion
+ }
+
+ private void WriteProjectDotNet(SolutionNode solution, ProjectNode project, StreamWriter ps)
+ {
+ #region Project File
+ using (ps)
+ {
+ ps.WriteLine("");
+ ps.WriteLine();
+
+ ps.WriteLine(" ");
+ ps.WriteLine(" {0}", project.FrameworkVersion.ToString().Replace("_", "."));
+ ps.WriteLine(" {0}", project.Name);
+ ps.WriteLine(" ");
+ ps.WriteLine();
+
+ // For .NET5/6 files, the Configuration section does not specify a build target
+ // so here we look for the "unknown" target type for the specified parameters.
+ foreach (ConfigurationNode conf in project.Configurations)
+ {
+ if (conf.Name == "unknown")
{
ps.WriteLine(" ");
- foreach (string opt in conf.Options.AllDefined())
+ foreach (string opt in conf.Options.AllDefined())
{
ps.WriteLine(" <{0}>{1}{0}>", opt,
Helper.EndPath(Helper.NormalizePath(conf.Options[opt].ToString())));
@@ -602,36 +605,36 @@ namespace Prebuild.Core.Targets
}
}
- if (project.ProjectReferences.Count > 0)
+ if (project.ProjectReferences.Count > 0)
{
ps.WriteLine(" ");
- foreach (ProjectReferenceNode refer in project.ProjectReferences)
+ foreach (ProjectReferenceNode refer in project.ProjectReferences)
{
- ps.WriteLine(" ", refer.Include);
- }
+ ps.WriteLine(" ", refer.Include);
+ }
ps.WriteLine(" ");
ps.WriteLine();
- }
- if (project.PackageReferences.Count > 0)
+ }
+ if (project.PackageReferences.Count > 0)
{
ps.WriteLine(" ");
- foreach (PackageReferenceNode pack in project.PackageReferences)
+ foreach (PackageReferenceNode pack in project.PackageReferences)
{
- ps.WriteLine(" ",
- pack.Name, pack.Version);
- }
+ ps.WriteLine(" ",
+ pack.Name, pack.Version);
+ }
ps.WriteLine(" ");
ps.WriteLine();
- }
- // Output the ItemGroup for project.References
- WriteProjectReferences(solution, project, ps);
+ }
+ // Output the ItemGroup for project.References
+ WriteProjectReferences(solution, project, ps);
- ps.WriteLine("");
+ ps.WriteLine("");
}
#endregion
}
- private void WriteProjectReferences(SolutionNode solution, ProjectNode project, StreamWriter ps)
+ private void WriteProjectReferences(SolutionNode solution, ProjectNode project, StreamWriter ps)
{
Dictionary projectReferences = new Dictionary();
List otherReferences = new List();
@@ -645,8 +648,8 @@ namespace Prebuild.Core.Targets
else
projectReferences.Add(refr, projectNode);
}
- // Assembly References
- if (otherReferences.Count > 0)
+ // Assembly References
+ if (otherReferences.Count > 0)
{
ps.WriteLine(" ");
@@ -660,20 +663,22 @@ namespace Prebuild.Core.Targets
ps.Write(refr.Name);
ps.WriteLine("");
- if(!String.IsNullOrEmpty(refr.Path))
+ if (!String.IsNullOrEmpty(refr.Path))
{
// Use absolute path to assembly (for determining assembly type)
string absolutePath = Path.Combine(project.FullPath, refr.Path);
- if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "exe")))
+ if (File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "exe")))
{
// Assembly is an executable (exe)
ps.WriteLine(" {0}", Helper.MakeFilePath(refr.Path, refr.Name, "exe"));
- } else if(File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "dll")))
+ }
+ else if (File.Exists(Helper.MakeFilePath(absolutePath, refr.Name, "dll")))
{
// Assembly is an library (dll)
ps.WriteLine(" {0}", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
- } else
- {
+ }
+ else
+ {
string referencePath = Helper.MakeFilePath(refr.Path, refr.Name, "dll");
kernel.Log.Write(LogType.Warning, "Reference \"{0}\": The specified file doesn't exist.", referencePath);
ps.WriteLine(" {0}", Helper.MakeFilePath(refr.Path, refr.Name, "dll"));
@@ -685,10 +690,10 @@ namespace Prebuild.Core.Targets
}
ps.WriteLine(" ");
ps.WriteLine();
- }
+ }
- //Project References
- if (projectReferences.Count > 0)
+ //Project References
+ if (projectReferences.Count > 0)
{
ps.WriteLine(" ");
foreach (KeyValuePair pair in projectReferences)
@@ -714,368 +719,368 @@ namespace Prebuild.Core.Targets
}
ps.WriteLine(" ");
ps.WriteLine();
- }
- }
+ }
+ }
private void WriteSolution(SolutionNode solution, bool writeSolutionToDisk)
- {
- kernel.Log.Write("Creating {0} solution and project files", VersionName);
-
- foreach (SolutionNode child in solution.Solutions)
- {
- kernel.Log.Write("...Creating folder: {0}", child.Name);
- WriteSolution(child, false);
- }
-
- foreach (ProjectNode project in solution.Projects)
- {
- kernel.Log.Write("...Creating project: {0}", project.Name);
- WriteProject(solution, project);
- }
-
- foreach (DatabaseProjectNode project in solution.DatabaseProjects)
- {
- kernel.Log.Write("...Creating database project: {0}", project.Name);
- WriteDatabaseProject(solution, project);
- }
-
- if (writeSolutionToDisk) // only write main solution
- {
- kernel.Log.Write("");
- string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
-
- using (StreamWriter ss = new StreamWriter(solutionFile))
- {
- kernel.CurrentWorkingDirectory.Push();
- Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
-
- ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", SolutionVersion);
- ss.WriteLine(SolutionTag);
-
- WriteProjectDeclarations(ss, solution, solution);
-
- ss.WriteLine("Global");
-
- ss.WriteLine("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution");
- foreach (ConfigurationNode conf in solution.Configurations)
- {
- ss.WriteLine("\t\t{0} = {0}", conf.NameAndPlatform);
- }
- ss.WriteLine("\tEndGlobalSection");
-
- ss.WriteLine("\tGlobalSection(ProjectConfigurationPlatforms) = postSolution");
- WriteConfigurationLines(solution.Configurations, solution, ss);
- ss.WriteLine("\tEndGlobalSection");
-
- if (solution.Solutions.Count > 0)
- {
- ss.WriteLine("\tGlobalSection(NestedProjects) = preSolution");
- foreach (SolutionNode embeddedSolution in solution.Solutions)
- {
- WriteNestedProjectMap(ss, embeddedSolution);
- }
- ss.WriteLine("\tEndGlobalSection");
- }
-
- ss.WriteLine("EndGlobal");
- }
-
- kernel.CurrentWorkingDirectory.Pop();
- }
- }
-
- private void WriteProjectDeclarations(TextWriter writer, SolutionNode actualSolution, SolutionNode embeddedSolution)
- {
- foreach (SolutionNode childSolution in embeddedSolution.Solutions)
- {
- WriteEmbeddedSolution(writer, childSolution);
- WriteProjectDeclarations(writer, actualSolution, childSolution);
- }
-
- foreach (ProjectNode project in embeddedSolution.Projects)
- {
- WriteProject(actualSolution, writer, project);
- }
-
- foreach (DatabaseProjectNode dbProject in embeddedSolution.DatabaseProjects)
- {
- WriteProject(actualSolution, writer, dbProject);
- }
-
- if (actualSolution.Guid == embeddedSolution.Guid)
- {
- WriteSolutionFiles(actualSolution, writer);
- }
- }
-
- private static void WriteNestedProjectMap(TextWriter writer, SolutionNode embeddedSolution)
- {
- foreach (ProjectNode project in embeddedSolution.Projects)
- {
- WriteNestedProject(writer, embeddedSolution, project.Guid);
- }
-
- foreach (DatabaseProjectNode dbProject in embeddedSolution.DatabaseProjects)
- {
- WriteNestedProject(writer, embeddedSolution, dbProject.Guid);
- }
-
- foreach (SolutionNode child in embeddedSolution.Solutions)
- {
- WriteNestedProject(writer, embeddedSolution, child.Guid);
- WriteNestedProjectMap(writer, child);
- }
- }
-
- private static void WriteNestedProject(TextWriter writer, SolutionNode solution, Guid projectGuid)
- {
- WriteNestedFolder(writer, solution.Guid, projectGuid);
- }
-
- private static void WriteNestedFolder(TextWriter writer, Guid parentGuid, Guid childGuid)
- {
- writer.WriteLine("\t\t{0} = {1}",
- childGuid.ToString("B").ToUpper(),
- parentGuid.ToString("B").ToUpper());
- }
-
- private static void WriteConfigurationLines(IEnumerable configurations, SolutionNode solution, TextWriter ss)
- {
- foreach (ProjectNode project in solution.Projects)
- {
- foreach (ConfigurationNode conf in configurations)
- {
- ss.WriteLine("\t\t{0}.{1}.ActiveCfg = {1}",
- project.Guid.ToString("B").ToUpper(),
- conf.NameAndPlatform);
-
- ss.WriteLine("\t\t{0}.{1}.Build.0 = {1}",
- project.Guid.ToString("B").ToUpper(),
- conf.NameAndPlatform);
- }
- }
-
- foreach (SolutionNode child in solution.Solutions)
- {
- WriteConfigurationLines(configurations, child, ss);
- }
- }
-
- private void WriteSolutionFiles(SolutionNode solution, TextWriter ss)
- {
- if(solution.Files != null && solution.Files.Count > 0)
- WriteProject(ss, "Folder", solution.Guid, "Solution Files", "Solution Files", solution.Files);
- }
-
- private void WriteEmbeddedSolution(TextWriter writer, SolutionNode embeddedSolution)
- {
- WriteProject(writer, "Folder", embeddedSolution.Guid, embeddedSolution.Name, embeddedSolution.Name, embeddedSolution.Files);
- }
-
- private void WriteProject(SolutionNode solution, TextWriter ss, ProjectNode project)
- {
- WriteProject(ss, solution, project.Language, project.Guid, project.Name, project.FullPath);
- }
-
- private void WriteProject(SolutionNode solution, TextWriter ss, DatabaseProjectNode dbProject)
- {
- if (solution.Files != null && solution.Files.Count > 0)
- WriteProject(ss, solution, "Database", dbProject.Guid, dbProject.Name, dbProject.FullPath);
- }
-
- const string ProjectDeclarationBeginFormat = "Project(\"{0}\") = \"{1}\", \"{2}\", \"{3}\"";
- const string ProjectDeclarationEndFormat = "EndProject";
-
- private void WriteProject(TextWriter ss, SolutionNode solution, string language, Guid guid, string name, string projectFullPath)
- {
- if (!tools.ContainsKey(language))
- throw new UnknownLanguageException("Unknown .NET language: " + language);
-
- ToolInfo toolInfo = tools[language];
-
- string path = Helper.MakePathRelativeTo(solution.FullPath, projectFullPath);
-
- path = Helper.MakeFilePath(path, name, toolInfo.FileExtension);
-
- WriteProject(ss, language, guid, name, path);
- }
-
- private void WriteProject(TextWriter writer, string language, Guid projectGuid, string name, string location)
- {
- WriteProject(writer, language, projectGuid, name, location, null);
- }
-
- private void WriteProject(TextWriter writer, string language, Guid projectGuid, string name, string location, FilesNode files)
- {
- if (!tools.ContainsKey(language))
- throw new UnknownLanguageException("Unknown .NET language: " + language);
-
- ToolInfo toolInfo = tools[language];
-
- writer.WriteLine(ProjectDeclarationBeginFormat,
- toolInfo.Guid,
- name,
- location,
- projectGuid.ToString("B").ToUpper());
-
- if (files != null)
- {
- writer.WriteLine("\tProjectSection(SolutionItems) = preProject");
-
- foreach (string file in files)
- writer.WriteLine("\t\t{0} = {0}", file);
-
- writer.WriteLine("\tEndProjectSection");
- }
-
- writer.WriteLine(ProjectDeclarationEndFormat);
- }
-
- private void WriteDatabaseProject(SolutionNode solution, DatabaseProjectNode project)
- {
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "dbp");
- IndentedTextWriter ps = new IndentedTextWriter(new StreamWriter(projectFile), " ");
-
- kernel.CurrentWorkingDirectory.Push();
-
- Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
-
- using (ps)
- {
- ps.WriteLine("# Microsoft Developer Studio Project File - Database Project");
- ps.WriteLine("Begin DataProject = \"{0}\"", project.Name);
- ps.Indent++;
- ps.WriteLine("MSDTVersion = \"80\"");
- // TODO: Use the project.Files property
- if (ContainsSqlFiles(Path.GetDirectoryName(projectFile)))
- WriteDatabaseFoldersAndFiles(ps, Path.GetDirectoryName(projectFile));
-
- ps.WriteLine("Begin DBRefFolder = \"Database References\"");
- ps.Indent++;
- foreach (DatabaseReferenceNode reference in project.References)
- {
- ps.WriteLine("Begin DBRefNode = \"{0}\"", reference.Name);
- ps.Indent++;
- ps.WriteLine("ConnectStr = \"{0}\"", reference.ConnectionString);
- ps.WriteLine("Provider = \"{0}\"", reference.ProviderId.ToString("B").ToUpper());
- //ps.WriteLine("Colorizer = 5");
- ps.Indent--;
- ps.WriteLine("End");
- }
- ps.Indent--;
- ps.WriteLine("End");
- ps.Indent--;
- ps.WriteLine("End");
-
- ps.Flush();
- }
-
- kernel.CurrentWorkingDirectory.Pop();
- }
-
- private static bool ContainsSqlFiles(string folder)
- {
- if(Directory.GetFiles(folder, "*.sql").Length > 0)
- return true; // if the folder contains 1 .sql file, that's good enough
-
- foreach (string child in Directory.GetDirectories(folder))
- {
- if (ContainsSqlFiles(child))
- return true; // if 1 child folder contains a .sql file, still good enough
- }
-
- return false;
- }
-
- private static void WriteDatabaseFoldersAndFiles(IndentedTextWriter writer, string folder)
- {
- foreach (string child in Directory.GetDirectories(folder))
- {
- if (ContainsSqlFiles(child))
- {
- writer.WriteLine("Begin Folder = \"{0}\"", Path.GetFileName(child));
- writer.Indent++;
- WriteDatabaseFoldersAndFiles(writer, child);
- writer.Indent--;
- writer.WriteLine("End");
- }
- }
- foreach (string file in Directory.GetFiles(folder, "*.sql"))
- {
- writer.WriteLine("Script = \"{0}\"", Path.GetFileName(file));
- }
- }
-
- private void CleanProject(ProjectNode project)
- {
- kernel.Log.Write("...Cleaning project: {0}", project.Name);
-
- ToolInfo toolInfo = tools[project.Language];
- string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
- string userFile = projectFile + ".user";
-
- Helper.DeleteIfExists(projectFile);
- Helper.DeleteIfExists(userFile);
- }
-
- private void CleanSolution(SolutionNode solution)
- {
- kernel.Log.Write("Cleaning {0} solution and project files", VersionName, solution.Name);
-
- string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
- string suoFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "suo");
-
- Helper.DeleteIfExists(slnFile);
- Helper.DeleteIfExists(suoFile);
-
- foreach (ProjectNode project in solution.Projects)
- {
- CleanProject(project);
- }
-
- kernel.Log.Write("");
- }
-
- #endregion
-
- #region ITarget Members
-
- ///
- /// Writes the specified kern.
- ///
- /// The kern.
- public virtual void Write(Kernel kern)
- {
- if (kern == null)
- {
- throw new ArgumentNullException("kern");
- }
- kernel = kern;
- foreach (SolutionNode sol in kernel.Solutions)
- {
- WriteSolution(sol, true);
- }
- kernel = null;
- }
-
- ///
- /// Cleans the specified kern.
- ///
- /// The kern.
- public virtual void Clean(Kernel kern)
- {
- if (kern == null)
- {
- throw new ArgumentNullException("kern");
- }
- kernel = kern;
- foreach (SolutionNode sol in kernel.Solutions)
- {
- CleanSolution(sol);
- }
- kernel = null;
- }
-
- #endregion
- }
+ {
+ kernel.Log.Write("Creating {0} solution and project files", VersionName);
+
+ foreach (SolutionNode child in solution.Solutions)
+ {
+ kernel.Log.Write("...Creating folder: {0}", child.Name);
+ WriteSolution(child, false);
+ }
+
+ foreach (ProjectNode project in solution.Projects)
+ {
+ kernel.Log.Write("...Creating project: {0}", project.Name);
+ WriteProject(solution, project);
+ }
+
+ foreach (DatabaseProjectNode project in solution.DatabaseProjects)
+ {
+ kernel.Log.Write("...Creating database project: {0}", project.Name);
+ WriteDatabaseProject(solution, project);
+ }
+
+ if (writeSolutionToDisk) // only write main solution
+ {
+ kernel.Log.Write("");
+ string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
+
+ using (StreamWriter ss = new StreamWriter(solutionFile))
+ {
+ kernel.CurrentWorkingDirectory.Push();
+ Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
+
+ ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", SolutionVersion);
+ ss.WriteLine(SolutionTag);
+
+ WriteProjectDeclarations(ss, solution, solution);
+
+ ss.WriteLine("Global");
+
+ ss.WriteLine("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution");
+ foreach (ConfigurationNode conf in solution.Configurations)
+ {
+ ss.WriteLine("\t\t{0} = {0}", conf.NameAndPlatform);
+ }
+ ss.WriteLine("\tEndGlobalSection");
+
+ ss.WriteLine("\tGlobalSection(ProjectConfigurationPlatforms) = postSolution");
+ WriteConfigurationLines(solution.Configurations, solution, ss);
+ ss.WriteLine("\tEndGlobalSection");
+
+ if (solution.Solutions.Count > 0)
+ {
+ ss.WriteLine("\tGlobalSection(NestedProjects) = preSolution");
+ foreach (SolutionNode embeddedSolution in solution.Solutions)
+ {
+ WriteNestedProjectMap(ss, embeddedSolution);
+ }
+ ss.WriteLine("\tEndGlobalSection");
+ }
+
+ ss.WriteLine("EndGlobal");
+ }
+
+ kernel.CurrentWorkingDirectory.Pop();
+ }
+ }
+
+ private void WriteProjectDeclarations(TextWriter writer, SolutionNode actualSolution, SolutionNode embeddedSolution)
+ {
+ foreach (SolutionNode childSolution in embeddedSolution.Solutions)
+ {
+ WriteEmbeddedSolution(writer, childSolution);
+ WriteProjectDeclarations(writer, actualSolution, childSolution);
+ }
+
+ foreach (ProjectNode project in embeddedSolution.Projects)
+ {
+ WriteProject(actualSolution, writer, project);
+ }
+
+ foreach (DatabaseProjectNode dbProject in embeddedSolution.DatabaseProjects)
+ {
+ WriteProject(actualSolution, writer, dbProject);
+ }
+
+ if (actualSolution.Guid == embeddedSolution.Guid)
+ {
+ WriteSolutionFiles(actualSolution, writer);
+ }
+ }
+
+ private static void WriteNestedProjectMap(TextWriter writer, SolutionNode embeddedSolution)
+ {
+ foreach (ProjectNode project in embeddedSolution.Projects)
+ {
+ WriteNestedProject(writer, embeddedSolution, project.Guid);
+ }
+
+ foreach (DatabaseProjectNode dbProject in embeddedSolution.DatabaseProjects)
+ {
+ WriteNestedProject(writer, embeddedSolution, dbProject.Guid);
+ }
+
+ foreach (SolutionNode child in embeddedSolution.Solutions)
+ {
+ WriteNestedProject(writer, embeddedSolution, child.Guid);
+ WriteNestedProjectMap(writer, child);
+ }
+ }
+
+ private static void WriteNestedProject(TextWriter writer, SolutionNode solution, Guid projectGuid)
+ {
+ WriteNestedFolder(writer, solution.Guid, projectGuid);
+ }
+
+ private static void WriteNestedFolder(TextWriter writer, Guid parentGuid, Guid childGuid)
+ {
+ writer.WriteLine("\t\t{0} = {1}",
+ childGuid.ToString("B").ToUpper(),
+ parentGuid.ToString("B").ToUpper());
+ }
+
+ private static void WriteConfigurationLines(IEnumerable configurations, SolutionNode solution, TextWriter ss)
+ {
+ foreach (ProjectNode project in solution.Projects)
+ {
+ foreach (ConfigurationNode conf in configurations)
+ {
+ ss.WriteLine("\t\t{0}.{1}.ActiveCfg = {1}",
+ project.Guid.ToString("B").ToUpper(),
+ conf.NameAndPlatform);
+
+ ss.WriteLine("\t\t{0}.{1}.Build.0 = {1}",
+ project.Guid.ToString("B").ToUpper(),
+ conf.NameAndPlatform);
+ }
+ }
+
+ foreach (SolutionNode child in solution.Solutions)
+ {
+ WriteConfigurationLines(configurations, child, ss);
+ }
+ }
+
+ private void WriteSolutionFiles(SolutionNode solution, TextWriter ss)
+ {
+ if (solution.Files != null && solution.Files.Count > 0)
+ WriteProject(ss, "Folder", solution.Guid, "Solution Files", "Solution Files", solution.Files);
+ }
+
+ private void WriteEmbeddedSolution(TextWriter writer, SolutionNode embeddedSolution)
+ {
+ WriteProject(writer, "Folder", embeddedSolution.Guid, embeddedSolution.Name, embeddedSolution.Name, embeddedSolution.Files);
+ }
+
+ private void WriteProject(SolutionNode solution, TextWriter ss, ProjectNode project)
+ {
+ WriteProject(ss, solution, project.Language, project.Guid, project.Name, project.FullPath);
+ }
+
+ private void WriteProject(SolutionNode solution, TextWriter ss, DatabaseProjectNode dbProject)
+ {
+ if (solution.Files != null && solution.Files.Count > 0)
+ WriteProject(ss, solution, "Database", dbProject.Guid, dbProject.Name, dbProject.FullPath);
+ }
+
+ const string ProjectDeclarationBeginFormat = "Project(\"{0}\") = \"{1}\", \"{2}\", \"{3}\"";
+ const string ProjectDeclarationEndFormat = "EndProject";
+
+ private void WriteProject(TextWriter ss, SolutionNode solution, string language, Guid guid, string name, string projectFullPath)
+ {
+ if (!tools.ContainsKey(language))
+ throw new UnknownLanguageException("Unknown .NET language: " + language);
+
+ ToolInfo toolInfo = tools[language];
+
+ string path = Helper.MakePathRelativeTo(solution.FullPath, projectFullPath);
+
+ path = Helper.MakeFilePath(path, name, toolInfo.FileExtension);
+
+ WriteProject(ss, language, guid, name, path);
+ }
+
+ private void WriteProject(TextWriter writer, string language, Guid projectGuid, string name, string location)
+ {
+ WriteProject(writer, language, projectGuid, name, location, null);
+ }
+
+ private void WriteProject(TextWriter writer, string language, Guid projectGuid, string name, string location, FilesNode files)
+ {
+ if (!tools.ContainsKey(language))
+ throw new UnknownLanguageException("Unknown .NET language: " + language);
+
+ ToolInfo toolInfo = tools[language];
+
+ writer.WriteLine(ProjectDeclarationBeginFormat,
+ toolInfo.Guid,
+ name,
+ location,
+ projectGuid.ToString("B").ToUpper());
+
+ if (files != null)
+ {
+ writer.WriteLine("\tProjectSection(SolutionItems) = preProject");
+
+ foreach (string file in files)
+ writer.WriteLine("\t\t{0} = {0}", file);
+
+ writer.WriteLine("\tEndProjectSection");
+ }
+
+ writer.WriteLine(ProjectDeclarationEndFormat);
+ }
+
+ private void WriteDatabaseProject(SolutionNode solution, DatabaseProjectNode project)
+ {
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, "dbp");
+ IndentedTextWriter ps = new IndentedTextWriter(new StreamWriter(projectFile), " ");
+
+ kernel.CurrentWorkingDirectory.Push();
+
+ Helper.SetCurrentDir(Path.GetDirectoryName(projectFile));
+
+ using (ps)
+ {
+ ps.WriteLine("# Microsoft Developer Studio Project File - Database Project");
+ ps.WriteLine("Begin DataProject = \"{0}\"", project.Name);
+ ps.Indent++;
+ ps.WriteLine("MSDTVersion = \"80\"");
+ // TODO: Use the project.Files property
+ if (ContainsSqlFiles(Path.GetDirectoryName(projectFile)))
+ WriteDatabaseFoldersAndFiles(ps, Path.GetDirectoryName(projectFile));
+
+ ps.WriteLine("Begin DBRefFolder = \"Database References\"");
+ ps.Indent++;
+ foreach (DatabaseReferenceNode reference in project.References)
+ {
+ ps.WriteLine("Begin DBRefNode = \"{0}\"", reference.Name);
+ ps.Indent++;
+ ps.WriteLine("ConnectStr = \"{0}\"", reference.ConnectionString);
+ ps.WriteLine("Provider = \"{0}\"", reference.ProviderId.ToString("B").ToUpper());
+ //ps.WriteLine("Colorizer = 5");
+ ps.Indent--;
+ ps.WriteLine("End");
+ }
+ ps.Indent--;
+ ps.WriteLine("End");
+ ps.Indent--;
+ ps.WriteLine("End");
+
+ ps.Flush();
+ }
+
+ kernel.CurrentWorkingDirectory.Pop();
+ }
+
+ private static bool ContainsSqlFiles(string folder)
+ {
+ if (Directory.GetFiles(folder, "*.sql").Length > 0)
+ return true; // if the folder contains 1 .sql file, that's good enough
+
+ foreach (string child in Directory.GetDirectories(folder))
+ {
+ if (ContainsSqlFiles(child))
+ return true; // if 1 child folder contains a .sql file, still good enough
+ }
+
+ return false;
+ }
+
+ private static void WriteDatabaseFoldersAndFiles(IndentedTextWriter writer, string folder)
+ {
+ foreach (string child in Directory.GetDirectories(folder))
+ {
+ if (ContainsSqlFiles(child))
+ {
+ writer.WriteLine("Begin Folder = \"{0}\"", Path.GetFileName(child));
+ writer.Indent++;
+ WriteDatabaseFoldersAndFiles(writer, child);
+ writer.Indent--;
+ writer.WriteLine("End");
+ }
+ }
+ foreach (string file in Directory.GetFiles(folder, "*.sql"))
+ {
+ writer.WriteLine("Script = \"{0}\"", Path.GetFileName(file));
+ }
+ }
+
+ private void CleanProject(ProjectNode project)
+ {
+ kernel.Log.Write("...Cleaning project: {0}", project.Name);
+
+ ToolInfo toolInfo = tools[project.Language];
+ string projectFile = Helper.MakeFilePath(project.FullPath, project.Name, toolInfo.FileExtension);
+ string userFile = projectFile + ".user";
+
+ Helper.DeleteIfExists(projectFile);
+ Helper.DeleteIfExists(userFile);
+ }
+
+ private void CleanSolution(SolutionNode solution)
+ {
+ kernel.Log.Write("Cleaning {0} solution and project files", VersionName, solution.Name);
+
+ string slnFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
+ string suoFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "suo");
+
+ Helper.DeleteIfExists(slnFile);
+ Helper.DeleteIfExists(suoFile);
+
+ foreach (ProjectNode project in solution.Projects)
+ {
+ CleanProject(project);
+ }
+
+ kernel.Log.Write("");
+ }
+
+ #endregion
+
+ #region ITarget Members
+
+ ///
+ /// Writes the specified kern.
+ ///
+ /// The kern.
+ public virtual void Write(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ kernel = kern;
+ foreach (SolutionNode sol in kernel.Solutions)
+ {
+ WriteSolution(sol, true);
+ }
+ kernel = null;
+ }
+
+ ///
+ /// Cleans the specified kern.
+ ///
+ /// The kern.
+ public virtual void Clean(Kernel kern)
+ {
+ if (kern == null)
+ {
+ throw new ArgumentNullException("kern");
+ }
+ kernel = kern;
+ foreach (SolutionNode sol in kernel.Solutions)
+ {
+ CleanSolution(sol);
+ }
+ kernel = null;
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Targets/VSVersion.cs b/Prebuild/src/Core/Targets/VSVersion.cs
index 52ad2ad374..0958cce693 100644
--- a/Prebuild/src/Core/Targets/VSVersion.cs
+++ b/Prebuild/src/Core/Targets/VSVersion.cs
@@ -25,44 +25,44 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
namespace Prebuild.Core.Targets
{
- ///
- ///
- ///
- public enum VSVersion
- {
- ///
- /// Visual Studio 2002
- ///
- VS70,
- ///
- /// Visual Studio 2003
- ///
- VS71,
- ///
- /// Visual Studio 2005
- ///
- VS80,
- ///
- /// Visual Studio 2008
- ///
- VS90,
- ///
- /// Visual Studio 2010
- ///
- VS10,
- ///
- /// Visual Studio 2012
- ///
- VS11,
- ///
- /// Visual Studio 2013
- ///
- VS12,
- ///
- /// Visual Studio 2015
- ///
- VS15,
- VS17,
- VS19
- }
+ ///
+ ///
+ ///
+ public enum VSVersion
+ {
+ ///
+ /// Visual Studio 2002
+ ///
+ VS70,
+ ///
+ /// Visual Studio 2003
+ ///
+ VS71,
+ ///
+ /// Visual Studio 2005
+ ///
+ VS80,
+ ///
+ /// Visual Studio 2008
+ ///
+ VS90,
+ ///
+ /// Visual Studio 2010
+ ///
+ VS10,
+ ///
+ /// Visual Studio 2012
+ ///
+ VS11,
+ ///
+ /// Visual Studio 2013
+ ///
+ VS12,
+ ///
+ /// Visual Studio 2015
+ ///
+ VS15,
+ VS17,
+ VS19
+ }
}
diff --git a/Prebuild/src/Core/UnknownLanguageException.cs b/Prebuild/src/Core/UnknownLanguageException.cs
index 607b66c022..3cdb61cf9f 100644
--- a/Prebuild/src/Core/UnknownLanguageException.cs
+++ b/Prebuild/src/Core/UnknownLanguageException.cs
@@ -20,44 +20,44 @@
using System;
using System.Runtime.Serialization;
-namespace Prebuild.Core
+namespace Prebuild.Core
{
- ///
- ///
- [Serializable()]
- public class UnknownLanguageException : Exception
- {
- ///
- /// Basic exception.
- ///
- public UnknownLanguageException()
- {
- }
+ ///
+ ///
+ [Serializable()]
+ public class UnknownLanguageException : Exception
+ {
+ ///
+ /// Basic exception.
+ ///
+ public UnknownLanguageException()
+ {
+ }
- ///
- /// Exception with specified string
- ///
- /// Exception message
- public UnknownLanguageException(string message): base(message)
- {
- }
+ ///
+ /// Exception with specified string
+ ///
+ /// Exception message
+ public UnknownLanguageException(string message) : base(message)
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- public UnknownLanguageException(string message, Exception exception) : base(message, exception)
- {
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public UnknownLanguageException(string message, Exception exception) : base(message, exception)
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- protected UnknownLanguageException(SerializationInfo info, StreamingContext context) : base( info, context )
- {
- }
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ protected UnknownLanguageException(SerializationInfo info, StreamingContext context) : base(info, context)
+ {
+ }
+ }
}
diff --git a/Prebuild/src/Core/Utilities/CommandLineCollection.cs b/Prebuild/src/Core/Utilities/CommandLineCollection.cs
index 786fa1e49d..29f57a5620 100644
--- a/Prebuild/src/Core/Utilities/CommandLineCollection.cs
+++ b/Prebuild/src/Core/Utilities/CommandLineCollection.cs
@@ -27,126 +27,126 @@ using System.Collections;
using System.Collections.Generic;
namespace Prebuild.Core.Utilities
-{
- ///
- /// The CommandLine class parses and interprets the command-line arguments passed to
- /// prebuild.
- ///
- public class CommandLineCollection : IEnumerable>
- {
- #region Fields
+{
+ ///
+ /// The CommandLine class parses and interprets the command-line arguments passed to
+ /// prebuild.
+ ///
+ public class CommandLineCollection : IEnumerable>
+ {
+ #region Fields
- // The raw OS arguments
- private readonly string[] m_RawArgs;
+ // The raw OS arguments
+ private readonly string[] m_RawArgs;
- // Command-line argument storage
- private readonly Dictionary m_Arguments = new Dictionary();
-
- #endregion
-
- #region Constructors
-
- ///
- /// Create a new CommandLine instance and set some internal variables.
- ///
- public CommandLineCollection(string[] args)
- {
- m_RawArgs = args;
-
- Parse();
- }
+ // Command-line argument storage
+ private readonly Dictionary m_Arguments = new Dictionary();
- #endregion
+ #endregion
- #region Private Methods
+ #region Constructors
- private void Parse()
- {
- if(m_RawArgs.Length < 1)
- return;
+ ///
+ /// Create a new CommandLine instance and set some internal variables.
+ ///
+ public CommandLineCollection(string[] args)
+ {
+ m_RawArgs = args;
- int idx = 0;
+ Parse();
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private void Parse()
+ {
+ if (m_RawArgs.Length < 1)
+ return;
+
+ int idx = 0;
string lastArg = null;
- while(idx 2 && arg[0] == '/')
- {
- arg = arg.Substring(1);
- lastArg = arg;
- m_Arguments[arg] = "";
- }
- else
- {
- if(lastArg != null)
- {
- m_Arguments[lastArg] = arg;
- lastArg = null;
- }
- }
+ if (arg.Length > 2 && arg[0] == '/')
+ {
+ arg = arg.Substring(1);
+ lastArg = arg;
+ m_Arguments[arg] = "";
+ }
+ else
+ {
+ if (lastArg != null)
+ {
+ m_Arguments[lastArg] = arg;
+ lastArg = null;
+ }
+ }
- idx++;
- }
- }
+ idx++;
+ }
+ }
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Wases the passed.
- ///
- /// The arg.
- ///
- public bool WasPassed(string arg)
- {
- return (m_Arguments.ContainsKey(arg));
- }
+ ///
+ /// Wases the passed.
+ ///
+ /// The arg.
+ ///
+ public bool WasPassed(string arg)
+ {
+ return (m_Arguments.ContainsKey(arg));
+ }
- #endregion
+ #endregion
- #region Properties
+ #region Properties
- ///
- /// Gets the parameter associated with the command line option
- ///
- /// Returns null if option was not specified,
- /// null string if no parameter was specified, and the value if a parameter was specified
- public string this[string index]
- {
- get
- {
- if(m_Arguments.ContainsKey(index))
- {
- return (m_Arguments[index]);
- }
- return null;
- }
- }
+ ///
+ /// Gets the parameter associated with the command line option
+ ///
+ /// Returns null if option was not specified,
+ /// null string if no parameter was specified, and the value if a parameter was specified
+ public string this[string index]
+ {
+ get
+ {
+ if (m_Arguments.ContainsKey(index))
+ {
+ return (m_Arguments[index]);
+ }
+ return null;
+ }
+ }
- #endregion
+ #endregion
- #region IEnumerable Members
+ #region IEnumerable Members
- ///
- /// Returns an enumerator that can iterate through a collection.
- ///
- ///
- /// An
- /// that can be used to iterate through the collection.
- ///
+ ///
+ /// Returns an enumerator that can iterate through a collection.
+ ///
+ ///
+ /// An
+ /// that can be used to iterate through the collection.
+ ///
public IEnumerator> GetEnumerator()
- {
- return m_Arguments.GetEnumerator();
- }
+ {
+ return m_Arguments.GetEnumerator();
+ }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Utilities/CurrentDirectory.cs b/Prebuild/src/Core/Utilities/CurrentDirectory.cs
index 9624c35ed5..2d2574f0cf 100644
--- a/Prebuild/src/Core/Utilities/CurrentDirectory.cs
+++ b/Prebuild/src/Core/Utilities/CurrentDirectory.cs
@@ -28,41 +28,41 @@ using System.Collections.Generic;
namespace Prebuild.Core.Utilities
{
- ///
- ///
- ///
- public class CurrentDirectory
- {
- #region Fields
+ ///
+ ///
+ ///
+ public class CurrentDirectory
+ {
+ #region Fields
- private readonly Stack m_Stack = new Stack();
+ private readonly Stack m_Stack = new Stack();
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Pushes this instance.
- ///
- public void Push()
- {
- m_Stack.Push(Environment.CurrentDirectory);
- }
+ ///
+ /// Pushes this instance.
+ ///
+ public void Push()
+ {
+ m_Stack.Push(Environment.CurrentDirectory);
+ }
- ///
- /// Pops this instance.
- ///
- public void Pop()
- {
- if(m_Stack.Count < 1)
- {
- return;
- }
-
- string cwd = m_Stack.Pop();
- Helper.SetCurrentDir(cwd);
- }
+ ///
+ /// Pops this instance.
+ ///
+ public void Pop()
+ {
+ if (m_Stack.Count < 1)
+ {
+ return;
+ }
- #endregion
- }
+ string cwd = m_Stack.Pop();
+ Helper.SetCurrentDir(cwd);
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Utilities/Helper.cs b/Prebuild/src/Core/Utilities/Helper.cs
index 85333407c1..6e5a3fa5a0 100644
--- a/Prebuild/src/Core/Utilities/Helper.cs
+++ b/Prebuild/src/Core/Utilities/Helper.cs
@@ -35,541 +35,543 @@ using Prebuild.Core.Nodes;
namespace Prebuild.Core.Utilities
{
- ///
- ///
- ///
- public class Helper
- {
- #region Fields
+ ///
+ ///
+ ///
+ public class Helper
+ {
+ #region Fields
- static bool checkForOSVariables;
+ static bool checkForOSVariables;
- ///
- ///
- ///
- public static bool CheckForOSVariables
- {
- get
- {
- return checkForOSVariables;
- }
- set
- {
- checkForOSVariables = value;
- }
- }
+ ///
+ ///
+ ///
+ public static bool CheckForOSVariables
+ {
+ get
+ {
+ return checkForOSVariables;
+ }
+ set
+ {
+ checkForOSVariables = value;
+ }
+ }
- #endregion
-
- #region Public Methods
+ #endregion
- #region String Parsing
+ #region Public Methods
- public delegate string StringLookup(string key);
+ #region String Parsing
- ///
- /// Gets a collection of StringLocationPair objects that represent the matches
- ///
- /// The target.
- /// The before group.
- /// The after group.
- /// if set to true [include delimiters in substrings].
- ///
- public static StringCollection FindGroups(string target, string beforeGroup, string afterGroup, bool includeDelimitersInSubstrings)
- {
- if( beforeGroup == null )
- {
- throw new ArgumentNullException("beforeGroup");
- }
- if( afterGroup == null )
- {
- throw new ArgumentNullException("afterGroup");
- }
- StringCollection results = new StringCollection();
- if(target == null || target.Length == 0)
- {
- return results;
- }
+ public delegate string StringLookup(string key);
- int beforeMod = 0;
- int afterMod = 0;
- if(includeDelimitersInSubstrings)
- {
- //be sure to not exlude the delims
- beforeMod = beforeGroup.Length;
- afterMod = afterGroup.Length;
- }
- int startIndex = 0;
- while((startIndex = target.IndexOf(beforeGroup,startIndex)) != -1) {
- int endIndex = target.IndexOf(afterGroup,startIndex);//the index of the char after it
- if(endIndex == -1)
- {
- break;
- }
- int length = endIndex - startIndex - beforeGroup.Length;//move to the first char in the string
- string substring = target.Substring(startIndex + beforeGroup.Length - beforeMod,
- length - afterMod);
+ ///
+ /// Gets a collection of StringLocationPair objects that represent the matches
+ ///
+ /// The target.
+ /// The before group.
+ /// The after group.
+ /// if set to true [include delimiters in substrings].
+ ///
+ public static StringCollection FindGroups(string target, string beforeGroup, string afterGroup, bool includeDelimitersInSubstrings)
+ {
+ if (beforeGroup == null)
+ {
+ throw new ArgumentNullException("beforeGroup");
+ }
+ if (afterGroup == null)
+ {
+ throw new ArgumentNullException("afterGroup");
+ }
+ StringCollection results = new StringCollection();
+ if (target == null || target.Length == 0)
+ {
+ return results;
+ }
- results.Add(substring);
- //results.Add(new StringLocationPair(substring,startIndex));
- startIndex = endIndex + 1;
- //the Interpolate*() methods will not work if expressions are expandded inside expression due to an optimization
- //so start after endIndex
-
- }
- return results;
- }
+ int beforeMod = 0;
+ int afterMod = 0;
+ if (includeDelimitersInSubstrings)
+ {
+ //be sure to not exlude the delims
+ beforeMod = beforeGroup.Length;
+ afterMod = afterGroup.Length;
+ }
+ int startIndex = 0;
+ while ((startIndex = target.IndexOf(beforeGroup, startIndex)) != -1)
+ {
+ int endIndex = target.IndexOf(afterGroup, startIndex);//the index of the char after it
+ if (endIndex == -1)
+ {
+ break;
+ }
+ int length = endIndex - startIndex - beforeGroup.Length;//move to the first char in the string
+ string substring = target.Substring(startIndex + beforeGroup.Length - beforeMod,
+ length - afterMod);
- ///
- /// Replaces the groups.
- ///
- /// The target.
- /// The before group.
- /// The after group.
- /// The lookup.
- ///
- public static string ReplaceGroups(string target, string beforeGroup, string afterGroup, StringLookup lookup) {
- if( target == null )
- {
- throw new ArgumentNullException("target");
- }
- //int targetLength = target.Length;
- StringCollection strings = FindGroups(target,beforeGroup,afterGroup,false);
- if( lookup == null )
- {
- throw new ArgumentNullException("lookup");
- }
- foreach(string substring in strings)
- {
- target = target.Replace(beforeGroup + substring + afterGroup, lookup(substring) );
- }
- return target;
- }
+ results.Add(substring);
+ //results.Add(new StringLocationPair(substring,startIndex));
+ startIndex = endIndex + 1;
+ //the Interpolate*() methods will not work if expressions are expandded inside expression due to an optimization
+ //so start after endIndex
- ///
- /// Replaces ${var} statements in a string with the corresonding values as detirmined by the lookup delegate
- ///
- /// The target.
- /// The lookup.
- ///
- public static string InterpolateForVariables(string target, StringLookup lookup)
- {
- return ReplaceGroups(target, "${" , "}" , lookup);
- }
+ }
+ return results;
+ }
- ///
- /// Replaces ${var} statements in a string with the corresonding environment variable with name var
- ///
- ///
- ///
- public static string InterpolateForEnvironmentVariables(string target)
- {
- return InterpolateForVariables(target, new StringLookup(Environment.GetEnvironmentVariable));
- }
+ ///
+ /// Replaces the groups.
+ ///
+ /// The target.
+ /// The before group.
+ /// The after group.
+ /// The lookup.
+ ///
+ public static string ReplaceGroups(string target, string beforeGroup, string afterGroup, StringLookup lookup)
+ {
+ if (target == null)
+ {
+ throw new ArgumentNullException("target");
+ }
+ //int targetLength = target.Length;
+ StringCollection strings = FindGroups(target, beforeGroup, afterGroup, false);
+ if (lookup == null)
+ {
+ throw new ArgumentNullException("lookup");
+ }
+ foreach (string substring in strings)
+ {
+ target = target.Replace(beforeGroup + substring + afterGroup, lookup(substring));
+ }
+ return target;
+ }
- #endregion
+ ///
+ /// Replaces ${var} statements in a string with the corresonding values as detirmined by the lookup delegate
+ ///
+ /// The target.
+ /// The lookup.
+ ///
+ public static string InterpolateForVariables(string target, StringLookup lookup)
+ {
+ return ReplaceGroups(target, "${", "}", lookup);
+ }
- ///
- /// Translates the value.
- ///
- /// Type of the translate.
- /// The translation item.
- ///
- public static object TranslateValue(Type translateType, string translationItem)
- {
- if(translationItem == null)
- {
- return null;
- }
+ ///
+ /// Replaces ${var} statements in a string with the corresonding environment variable with name var
+ ///
+ ///
+ ///
+ public static string InterpolateForEnvironmentVariables(string target)
+ {
+ return InterpolateForVariables(target, new StringLookup(Environment.GetEnvironmentVariable));
+ }
- try
- {
- string lowerVal = translationItem.ToLower();
- if(translateType == typeof(bool))
- {
- return (lowerVal == "true" || lowerVal == "1" || lowerVal == "y" || lowerVal == "yes" || lowerVal == "on");
- }
- else if(translateType == typeof(int))
- {
- return (Int32.Parse(translationItem));
- }
- else
- {
- return translationItem;
- }
- }
- catch(FormatException)
- {
- return null;
- }
- }
+ #endregion
- ///
- /// Deletes if exists.
- ///
- /// The file.
- ///
- public static bool DeleteIfExists(string file)
- {
- string resFile = null;
- try
- {
- resFile = ResolvePath(file);
- }
- catch(ArgumentException)
- {
- return false;
- }
+ ///
+ /// Translates the value.
+ ///
+ /// Type of the translate.
+ /// The translation item.
+ ///
+ public static object TranslateValue(Type translateType, string translationItem)
+ {
+ if (translationItem == null)
+ {
+ return null;
+ }
- if(!File.Exists(resFile))
- {
- return false;
- }
+ try
+ {
+ string lowerVal = translationItem.ToLower();
+ if (translateType == typeof(bool))
+ {
+ return (lowerVal == "true" || lowerVal == "1" || lowerVal == "y" || lowerVal == "yes" || lowerVal == "on");
+ }
+ else if (translateType == typeof(int))
+ {
+ return (Int32.Parse(translationItem));
+ }
+ else
+ {
+ return translationItem;
+ }
+ }
+ catch (FormatException)
+ {
+ return null;
+ }
+ }
- File.Delete(resFile);
- return true;
- }
+ ///
+ /// Deletes if exists.
+ ///
+ /// The file.
+ ///
+ public static bool DeleteIfExists(string file)
+ {
+ string resFile = null;
+ try
+ {
+ resFile = ResolvePath(file);
+ }
+ catch (ArgumentException)
+ {
+ return false;
+ }
+
+ if (!File.Exists(resFile))
+ {
+ return false;
+ }
+
+ File.Delete(resFile);
+ return true;
+ }
static readonly char seperator = Path.DirectorySeparatorChar;
- // This little gem was taken from the NeL source, thanks guys!
- ///
- /// Makes a relative path
- ///
- /// Path to start from
- /// Path to end at
- /// Path that will get from startPath to endPath
- public static string MakePathRelativeTo(string startPath, string endPath)
- {
- string tmp = NormalizePath(startPath, seperator);
- string src = NormalizePath(endPath, seperator);
- string prefix = "";
+ // This little gem was taken from the NeL source, thanks guys!
+ ///
+ /// Makes a relative path
+ ///
+ /// Path to start from
+ /// Path to end at
+ /// Path that will get from startPath to endPath
+ public static string MakePathRelativeTo(string startPath, string endPath)
+ {
+ string tmp = NormalizePath(startPath, seperator);
+ string src = NormalizePath(endPath, seperator);
+ string prefix = "";
- while(true)
- {
- if((String.Compare(tmp, 0, src, 0, tmp.Length) == 0))
- {
- string ret;
- int size = tmp.Length;
- if(size == src.Length)
- {
- return "./";
- }
- if((src.Length > tmp.Length) && src[tmp.Length - 1] != seperator)
- {
- }
- else
- {
- ret = prefix + endPath.Substring(size, endPath.Length - size);
- ret = ret.Trim();
- if(ret[0] == seperator)
- {
- ret = "." + ret;
- }
+ while (true)
+ {
+ if ((String.Compare(tmp, 0, src, 0, tmp.Length) == 0))
+ {
+ string ret;
+ int size = tmp.Length;
+ if (size == src.Length)
+ {
+ return "./";
+ }
+ if ((src.Length > tmp.Length) && src[tmp.Length - 1] != seperator)
+ {
+ }
+ else
+ {
+ ret = prefix + endPath.Substring(size, endPath.Length - size);
+ ret = ret.Trim();
+ if (ret[0] == seperator)
+ {
+ ret = "." + ret;
+ }
- return NormalizePath(ret);
- }
-
- }
+ return NormalizePath(ret);
+ }
- if(tmp.Length < 2)
- {
- break;
- }
+ }
+
+ if (tmp.Length < 2)
+ {
+ break;
+ }
int lastPos = tmp.LastIndexOf(seperator, tmp.Length - 2);
int prevPos = tmp.IndexOf(seperator);
- if((lastPos == prevPos) || (lastPos == -1))
- {
- break;
- }
+ if ((lastPos == prevPos) || (lastPos == -1))
+ {
+ break;
+ }
- tmp = tmp.Substring(0, lastPos + 1);
- prefix += ".." + seperator.ToString();
- }
+ tmp = tmp.Substring(0, lastPos + 1);
+ prefix += ".." + seperator.ToString();
+ }
- return endPath;
- }
+ return endPath;
+ }
- ///
- /// Resolves the path.
- ///
- /// The path.
- ///
- public static string ResolvePath(string path)
- {
- string tmpPath = NormalizePath(path);
- if(tmpPath.Length < 1)
- {
- tmpPath = ".";
- }
-
- tmpPath = Path.GetFullPath(tmpPath);
- if(!File.Exists(tmpPath) && !Directory.Exists(tmpPath))
- {
- throw new ArgumentException("Path could not be resolved: " + tmpPath);
- }
+ ///
+ /// Resolves the path.
+ ///
+ /// The path.
+ ///
+ public static string ResolvePath(string path)
+ {
+ string tmpPath = NormalizePath(path);
+ if (tmpPath.Length < 1)
+ {
+ tmpPath = ".";
+ }
- return tmpPath;
- }
+ tmpPath = Path.GetFullPath(tmpPath);
+ if (!File.Exists(tmpPath) && !Directory.Exists(tmpPath))
+ {
+ throw new ArgumentException("Path could not be resolved: " + tmpPath);
+ }
- ///
- /// Normalizes the path.
- ///
- /// The path.
- /// The separator character.
- ///
- public static string NormalizePath(string path, char separatorCharacter)
- {
- if(path == null || path == "" || path.Length < 1)
- {
- return "";
- }
+ return tmpPath;
+ }
- string tmpPath = path.Replace('\\', '/');
- tmpPath = tmpPath.Replace('/', separatorCharacter);
- return tmpPath;
- }
+ ///
+ /// Normalizes the path.
+ ///
+ /// The path.
+ /// The separator character.
+ ///
+ public static string NormalizePath(string path, char separatorCharacter)
+ {
+ if (path == null || path == "" || path.Length < 1)
+ {
+ return "";
+ }
- ///
- /// Normalizes the path.
- ///
- /// The path.
- ///
- public static string NormalizePath(string path)
- {
- return NormalizePath(path, Path.DirectorySeparatorChar);
- }
-
- ///
- /// Ends the path.
- ///
- /// The path.
- /// The separator character.
- ///
- public static string EndPath(string path, char separatorCharacter)
- {
- if(path == null || path == "" || path.Length < 1)
- {
- return "";
- }
+ string tmpPath = path.Replace('\\', '/');
+ tmpPath = tmpPath.Replace('/', separatorCharacter);
+ return tmpPath;
+ }
- if(!path.EndsWith(separatorCharacter.ToString()))
- {
- return (path + separatorCharacter);
- }
+ ///
+ /// Normalizes the path.
+ ///
+ /// The path.
+ ///
+ public static string NormalizePath(string path)
+ {
+ return NormalizePath(path, Path.DirectorySeparatorChar);
+ }
- return path;
- }
+ ///
+ /// Ends the path.
+ ///
+ /// The path.
+ /// The separator character.
+ ///
+ public static string EndPath(string path, char separatorCharacter)
+ {
+ if (path == null || path == "" || path.Length < 1)
+ {
+ return "";
+ }
- ///
- /// Ends the path.
- ///
- /// The path.
- ///
- public static string EndPath(string path)
- {
- return EndPath(path, Path.DirectorySeparatorChar);
- }
+ if (!path.EndsWith(separatorCharacter.ToString()))
+ {
+ return (path + separatorCharacter);
+ }
- ///
- /// Makes the file path.
- ///
- /// The path.
- /// The name.
- /// The ext.
- ///
- public static string MakeFilePath(string path, string name, string ext)
- {
- string ret = EndPath(NormalizePath(path));
-
- if( name == null )
- {
- throw new ArgumentNullException("name");
- }
+ return path;
+ }
+
+ ///
+ /// Ends the path.
+ ///
+ /// The path.
+ ///
+ public static string EndPath(string path)
+ {
+ return EndPath(path, Path.DirectorySeparatorChar);
+ }
+
+ ///
+ /// Makes the file path.
+ ///
+ /// The path.
+ /// The name.
+ /// The ext.
+ ///
+ public static string MakeFilePath(string path, string name, string ext)
+ {
+ string ret = EndPath(NormalizePath(path));
+
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+
+ ret += name;
+ if (!name.EndsWith("." + ext))
+ {
+ ret += "." + ext;
+ }
- ret += name;
- if(!name.EndsWith("." + ext))
- {
- ret += "." + ext;
- }
-
//foreach(char c in Path.GetInvalidPathChars())
//{
// ret = ret.Replace(c, '_');
//}
- return ret;
- }
+ return ret;
+ }
- ///
- /// Makes the file path.
- ///
- /// The path.
- /// The name.
- ///
- public static string MakeFilePath(string path, string name)
- {
- string ret = EndPath(NormalizePath(path));
-
- if( name == null )
- {
- throw new ArgumentNullException("name");
- }
+ ///
+ /// Makes the file path.
+ ///
+ /// The path.
+ /// The name.
+ ///
+ public static string MakeFilePath(string path, string name)
+ {
+ string ret = EndPath(NormalizePath(path));
- ret += name;
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+
+ ret += name;
//foreach (char c in Path.GetInvalidPathChars())
//{
// ret = ret.Replace(c, '_');
//}
- return ret;
- }
+ return ret;
+ }
- ///
- ///
- ///
- ///
- ///
- public static string MakeReferencePath(string path)
- {
- string ret = EndPath(NormalizePath(path));
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string MakeReferencePath(string path)
+ {
+ string ret = EndPath(NormalizePath(path));
//foreach (char c in Path.GetInvalidPathChars())
//{
// ret = ret.Replace(c, '_');
//}
- return ret;
- }
+ return ret;
+ }
- ///
- /// Sets the current dir.
- ///
- /// The path.
- public static void SetCurrentDir(string path)
- {
- if( path == null )
- {
- throw new ArgumentNullException("path");
- }
- if(path.Length < 1)
- {
- return;
- }
+ ///
+ /// Sets the current dir.
+ ///
+ /// The path.
+ public static void SetCurrentDir(string path)
+ {
+ if (path == null)
+ {
+ throw new ArgumentNullException("path");
+ }
+ if (path.Length < 1)
+ {
+ return;
+ }
- Environment.CurrentDirectory = path;
- }
+ Environment.CurrentDirectory = path;
+ }
- ///
- /// Checks the type.
- ///
- /// The type to check.
- /// The attr.
- /// The inter.
- ///
- public static object CheckType(Type typeToCheck, Type attr, Type inter)
- {
- if(typeToCheck == null || attr == null)
- {
- return null;
- }
+ ///
+ /// Checks the type.
+ ///
+ /// The type to check.
+ /// The attr.
+ /// The inter.
+ ///
+ public static object CheckType(Type typeToCheck, Type attr, Type inter)
+ {
+ if (typeToCheck == null || attr == null)
+ {
+ return null;
+ }
- object[] attrs = typeToCheck.GetCustomAttributes(attr, false);
- if(attrs == null || attrs.Length < 1)
- {
- return null;
- }
- if( inter == null )
- {
- throw new ArgumentNullException("inter");
- }
+ object[] attrs = typeToCheck.GetCustomAttributes(attr, false);
+ if (attrs == null || attrs.Length < 1)
+ {
+ return null;
+ }
+ if (inter == null)
+ {
+ throw new ArgumentNullException("inter");
+ }
- if(typeToCheck.GetInterface(inter.FullName) == null)
- {
- return null;
- }
+ if (typeToCheck.GetInterface(inter.FullName) == null)
+ {
+ return null;
+ }
- return attrs[0];
- }
+ return attrs[0];
+ }
- ///
- /// Attributes the value.
- ///
- /// The node.
- /// The attr.
- /// The def.
- ///
- public static string AttributeValue(XmlNode node, string attr, string def)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- if(node.Attributes[attr] == null)
- {
- return def;
- }
- string val = node.Attributes[attr].Value;
- if(!CheckForOSVariables)
- {
- return val;
- }
+ ///
+ /// Attributes the value.
+ ///
+ /// The node.
+ /// The attr.
+ /// The def.
+ ///
+ public static string AttributeValue(XmlNode node, string attr, string def)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (node.Attributes[attr] == null)
+ {
+ return def;
+ }
+ string val = node.Attributes[attr].Value;
+ if (!CheckForOSVariables)
+ {
+ return val;
+ }
- return InterpolateForEnvironmentVariables(val);
- }
+ return InterpolateForEnvironmentVariables(val);
+ }
- ///
- /// Parses the boolean.
- ///
- /// The node.
- /// The attr.
- /// if set to true [default value].
- ///
- public static bool ParseBoolean(XmlNode node, string attr, bool defaultValue)
- {
- if( node == null )
- {
- throw new ArgumentNullException("node");
- }
- if(node.Attributes[attr] == null)
- {
- return defaultValue;
- }
- return bool.Parse(node.Attributes[attr].Value);
- }
+ ///
+ /// Parses the boolean.
+ ///
+ /// The node.
+ /// The attr.
+ /// if set to true [default value].
+ ///
+ public static bool ParseBoolean(XmlNode node, string attr, bool defaultValue)
+ {
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (node.Attributes[attr] == null)
+ {
+ return defaultValue;
+ }
+ return bool.Parse(node.Attributes[attr].Value);
+ }
- ///
- /// Enums the attribute value.
- ///
- /// The node.
- /// The attr.
- /// Type of the enum.
- /// The def.
- ///
- public static object EnumAttributeValue(XmlNode node, string attr, Type enumType, object def)
- {
- if( def == null )
- {
- throw new ArgumentNullException("def");
- }
- string val = AttributeValue(node, attr, def.ToString());
- return Enum.Parse(enumType, val, true);
- }
+ ///
+ /// Enums the attribute value.
+ ///
+ /// The node.
+ /// The attr.
+ /// Type of the enum.
+ /// The def.
+ ///
+ public static object EnumAttributeValue(XmlNode node, string attr, Type enumType, object def)
+ {
+ if (def == null)
+ {
+ throw new ArgumentNullException("def");
+ }
+ string val = AttributeValue(node, attr, def.ToString());
+ return Enum.Parse(enumType, val, true);
+ }
- ///
- ///
- ///
- ///
- ///
- ///
- public static string AssemblyFullName(string assemblyName, ProjectType projectType)
- {
- return assemblyName + (projectType == ProjectType.Library ? ".dll" : ".exe");
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string AssemblyFullName(string assemblyName, ProjectType projectType)
+ {
+ return assemblyName + (projectType == ProjectType.Library ? ".dll" : ".exe");
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/Utilities/Log.cs b/Prebuild/src/Core/Utilities/Log.cs
index 4df3defdd0..ee83ba4b11 100644
--- a/Prebuild/src/Core/Utilities/Log.cs
+++ b/Prebuild/src/Core/Utilities/Log.cs
@@ -28,74 +28,74 @@ using System.IO;
namespace Prebuild.Core.Utilities
{
- ///
- ///
- ///
- public enum LogType
- {
- ///
- ///
- ///
- None,
- ///
- ///
- ///
- Info,
- ///
- ///
- ///
- Warning,
- ///
- ///
- ///
- Error
- }
+ ///
+ ///
+ ///
+ public enum LogType
+ {
+ ///
+ ///
+ ///
+ None,
+ ///
+ ///
+ ///
+ Info,
+ ///
+ ///
+ ///
+ Warning,
+ ///
+ ///
+ ///
+ Error
+ }
- ///
- ///
- ///
- [Flags]
- public enum LogTargets
- {
- ///
- ///
- ///
- None = 0,
- ///
- ///
- ///
- Null = 1,
- ///
- ///
- ///
- File = 2,
- ///
- ///
- ///
- Console = 4
- }
+ ///
+ ///
+ ///
+ [Flags]
+ public enum LogTargets
+ {
+ ///
+ ///
+ ///
+ None = 0,
+ ///
+ ///
+ ///
+ Null = 1,
+ ///
+ ///
+ ///
+ File = 2,
+ ///
+ ///
+ ///
+ Console = 4
+ }
- ///
- /// Summary description for Log.
- ///
- public class Log : IDisposable
- {
- #region Fields
+ ///
+ /// Summary description for Log.
+ ///
+ public class Log : IDisposable
+ {
+ #region Fields
- private TextWriter m_Writer;
- private LogTargets m_Target = LogTargets.Null;
- bool disposed;
+ private TextWriter m_Writer;
+ private LogTargets m_Target = LogTargets.Null;
+ bool disposed;
- #endregion
+ #endregion
- #region Constructors
+ #region Constructors
- ///
- /// Initializes a new instance of the class.
- ///
- /// The target.
- /// Name of the file.
- public Log(LogTargets target, string fileName)
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The target.
+ /// Name of the file.
+ public Log(LogTargets target, string fileName)
{
m_Target = target;
@@ -111,166 +111,166 @@ namespace Prebuild.Core.Utilities
}
}
- #endregion
+ #endregion
- #region Public Methods
+ #region Public Methods
- ///
- /// Writes this instance.
- ///
- public void Write()
- {
- Write(string.Empty);
- }
+ ///
+ /// Writes this instance.
+ ///
+ public void Write()
+ {
+ Write(string.Empty);
+ }
- ///
- /// Writes the specified MSG.
- ///
- /// The MSG.
- public void Write(string msg)
- {
- if((m_Target & LogTargets.Null) != 0)
- {
- return;
- }
+ ///
+ /// Writes the specified MSG.
+ ///
+ /// The MSG.
+ public void Write(string msg)
+ {
+ if ((m_Target & LogTargets.Null) != 0)
+ {
+ return;
+ }
- if((m_Target & LogTargets.Console) != 0)
- {
- Console.WriteLine(msg);
- }
- if((m_Target & LogTargets.File) != 0 && m_Writer != null)
- {
- m_Writer.WriteLine(msg);
- }
- }
+ if ((m_Target & LogTargets.Console) != 0)
+ {
+ Console.WriteLine(msg);
+ }
+ if ((m_Target & LogTargets.File) != 0 && m_Writer != null)
+ {
+ m_Writer.WriteLine(msg);
+ }
+ }
- ///
- /// Writes the specified format.
- ///
- /// The format.
- /// The args.
- public void Write(string format, params object[] args)
- {
- Write(string.Format(format,args));
- }
+ ///
+ /// Writes the specified format.
+ ///
+ /// The format.
+ /// The args.
+ public void Write(string format, params object[] args)
+ {
+ Write(string.Format(format, args));
+ }
- ///
- /// Writes the specified type.
- ///
- /// The type.
- /// The format.
- /// The args.
- public void Write(LogType type, string format, params object[] args)
- {
- if((m_Target & LogTargets.Null) != 0)
- {
- return;
- }
+ ///
+ /// Writes the specified type.
+ ///
+ /// The type.
+ /// The format.
+ /// The args.
+ public void Write(LogType type, string format, params object[] args)
+ {
+ if ((m_Target & LogTargets.Null) != 0)
+ {
+ return;
+ }
- string str = "";
- switch(type)
- {
- case LogType.Info:
- str = "[I] ";
- break;
- case LogType.Warning:
- str = "[!] ";
- break;
- case LogType.Error:
- str = "[X] ";
- break;
- }
+ string str = "";
+ switch (type)
+ {
+ case LogType.Info:
+ str = "[I] ";
+ break;
+ case LogType.Warning:
+ str = "[!] ";
+ break;
+ case LogType.Error:
+ str = "[X] ";
+ break;
+ }
- Write(str + format,args);
- }
+ Write(str + format, args);
+ }
- ///
- /// Writes the exception.
- ///
- /// The type.
- /// The ex.
- public void WriteException(LogType type, Exception ex)
- {
- if(ex != null)
- {
- Write(type, ex.Message);
- //#if DEBUG
- m_Writer.WriteLine("Exception @{0} stack trace [[", ex.TargetSite.Name);
- m_Writer.WriteLine(ex.StackTrace);
- m_Writer.WriteLine("]]");
- //#endif
- }
- }
+ ///
+ /// Writes the exception.
+ ///
+ /// The type.
+ /// The ex.
+ public void WriteException(LogType type, Exception ex)
+ {
+ if (ex != null)
+ {
+ Write(type, ex.Message);
+ //#if DEBUG
+ m_Writer.WriteLine("Exception @{0} stack trace [[", ex.TargetSite.Name);
+ m_Writer.WriteLine(ex.StackTrace);
+ m_Writer.WriteLine("]]");
+ //#endif
+ }
+ }
- ///
- /// Flushes this instance.
- ///
- public void Flush()
- {
- if(m_Writer != null)
- {
- m_Writer.Flush();
- }
- }
+ ///
+ /// Flushes this instance.
+ ///
+ public void Flush()
+ {
+ if (m_Writer != null)
+ {
+ m_Writer.Flush();
+ }
+ }
- #endregion
+ #endregion
- #region IDisposable Members
+ #region IDisposable Members
- ///
- /// Performs application-defined tasks associated with freeing, releasing, or
- /// resetting unmanaged resources.
- ///
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
+ ///
+ /// Performs application-defined tasks associated with freeing, releasing, or
+ /// resetting unmanaged resources.
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
- ///
- /// Dispose objects
- ///
- ///
- /// If true, it will dispose close the handle
- ///
- ///
- /// Will dispose managed and unmanaged resources.
- ///
- protected virtual void Dispose(bool disposing)
- {
- if (!this.disposed)
- {
- if (disposing)
- {
- if (m_Writer != null)
- {
- m_Writer.Close();
- m_Writer = null;
- }
- }
- }
- this.disposed = true;
- }
+ ///
+ /// Dispose objects
+ ///
+ ///
+ /// If true, it will dispose close the handle
+ ///
+ ///
+ /// Will dispose managed and unmanaged resources.
+ ///
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!this.disposed)
+ {
+ if (disposing)
+ {
+ if (m_Writer != null)
+ {
+ m_Writer.Close();
+ m_Writer = null;
+ }
+ }
+ }
+ this.disposed = true;
+ }
- ///
- ///
- ///
- ~Log()
- {
- this.Dispose(false);
- }
-
- ///
- /// Closes and destroys this object
- ///
- ///
- /// Same as Dispose(true)
- ///
- public void Close()
- {
- Dispose();
- }
+ ///
+ ///
+ ///
+ ~Log()
+ {
+ this.Dispose(false);
+ }
- #endregion
- }
+ ///
+ /// Closes and destroys this object
+ ///
+ ///
+ /// Same as Dispose(true)
+ ///
+ public void Close()
+ {
+ Dispose();
+ }
+
+ #endregion
+ }
}
diff --git a/Prebuild/src/Core/WarningException.cs b/Prebuild/src/Core/WarningException.cs
index b7c3668cce..30095f871e 100644
--- a/Prebuild/src/Core/WarningException.cs
+++ b/Prebuild/src/Core/WarningException.cs
@@ -28,57 +28,57 @@ using System.Runtime.Serialization;
namespace Prebuild.Core
{
- ///
- ///
- ///
- [Serializable]
- public class WarningException : Exception
- {
- #region Constructors
+ ///
+ ///
+ ///
+ [Serializable]
+ public class WarningException : Exception
+ {
+ #region Constructors
- ///
- ///
- ///
- public WarningException()
- {
- }
+ ///
+ ///
+ ///
+ public WarningException()
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- public WarningException(string format, params object[] args)
- : base(String.Format(format, args))
- {
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public WarningException(string format, params object[] args)
+ : base(String.Format(format, args))
+ {
+ }
- ///
- /// Exception with specified string
- ///
- /// Exception message
- public WarningException(string message): base(message)
- {
- }
+ ///
+ /// Exception with specified string
+ ///
+ /// Exception message
+ public WarningException(string message) : base(message)
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- public WarningException(string message, Exception exception) : base(message, exception)
- {
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public WarningException(string message, Exception exception) : base(message, exception)
+ {
+ }
- ///
- ///
- ///
- ///
- ///
- protected WarningException(SerializationInfo info, StreamingContext context) : base( info, context )
- {
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ protected WarningException(SerializationInfo info, StreamingContext context) : base(info, context)
+ {
+ }
- #endregion
- }
+ #endregion
+ }
}
diff --git a/Prebuild/src/Prebuild.cs b/Prebuild/src/Prebuild.cs
index 35a5dfaf44..6374e36b9e 100644
--- a/Prebuild/src/Prebuild.cs
+++ b/Prebuild/src/Prebuild.cs
@@ -42,50 +42,50 @@ using System.EnterpriseServices.Internal;
using Prebuild.Core;
using Prebuild.Core.Utilities;
-namespace Prebuild
+namespace Prebuild
{
- ///
- ///
- ///
- class Prebuild
- {
- #region Main
+ ///
+ ///
+ ///
+ class Prebuild
+ {
+ #region Main
- [STAThread]
- static void Main(string[] args)
- {
- Kernel kernel = null;
- try
- {
- kernel = Kernel.Instance;
- kernel.Initialize(LogTargets.File | LogTargets.Console, args);
- bool exit = false;
+ [STAThread]
+ static void Main(string[] args)
+ {
+ Kernel kernel = null;
+ try
+ {
+ kernel = Kernel.Instance;
+ kernel.Initialize(LogTargets.File | LogTargets.Console, args);
+ bool exit = false;
- if(kernel.CommandLine.WasPassed("usage"))
- {
- exit = true;
- OutputUsage();
- }
- if(kernel.CommandLine.WasPassed("showtargets"))
- {
- exit = true;
- OutputTargets(kernel);
- }
- if(kernel.CommandLine.WasPassed("install"))
- {
- exit = true;
- InstallAssembly(kernel);
- }
- if(kernel.CommandLine.WasPassed("remove"))
- {
- exit = true;
- RemoveAssembly(kernel);
- }
+ if (kernel.CommandLine.WasPassed("usage"))
+ {
+ exit = true;
+ OutputUsage();
+ }
+ if (kernel.CommandLine.WasPassed("showtargets"))
+ {
+ exit = true;
+ OutputTargets(kernel);
+ }
+ if (kernel.CommandLine.WasPassed("install"))
+ {
+ exit = true;
+ InstallAssembly(kernel);
+ }
+ if (kernel.CommandLine.WasPassed("remove"))
+ {
+ exit = true;
+ RemoveAssembly(kernel);
+ }
- if(!exit)
- {
- kernel.Process();
- }
+ if (!exit)
+ {
+ kernel.Process();
+ }
}
#if !DEBUG
catch (Exception ex)
@@ -96,70 +96,70 @@ namespace Prebuild
#endif
finally
{
- if(kernel != null && kernel.PauseAfterFinish)
- {
- Console.WriteLine("\nPress enter to continue...");
- Console.ReadLine();
- }
- }
- }
+ if (kernel != null && kernel.PauseAfterFinish)
+ {
+ Console.WriteLine("\nPress enter to continue...");
+ Console.ReadLine();
+ }
+ }
+ }
- #endregion
+ #endregion
- #region Private Methods
+ #region Private Methods
- private static void InstallAssembly(Kernel kernel)
- {
- Publish publish = new Publish();
- string file = kernel.CommandLine["install"];
+ private static void InstallAssembly(Kernel kernel)
+ {
+ Publish publish = new Publish();
+ string file = kernel.CommandLine["install"];
//Console.WriteLine(".."+file+"..");
- publish.GacInstall(file);
- }
+ publish.GacInstall(file);
+ }
- private static void RemoveAssembly(Kernel kernel)
- {
- Publish publish = new Publish();
- string file = kernel.CommandLine["remove"];
- publish.GacRemove(file);
- }
+ private static void RemoveAssembly(Kernel kernel)
+ {
+ Publish publish = new Publish();
+ string file = kernel.CommandLine["remove"];
+ publish.GacRemove(file);
+ }
- private static void OutputUsage()
- {
- Console.WriteLine("Usage: prebuild /target [options]");
- Console.WriteLine("Available command-line switches:");
- Console.WriteLine();
- Console.WriteLine("/target Target for Prebuild");
- Console.WriteLine("/clean Clean the build files for the given target");
- Console.WriteLine("/file XML file to process");
- Console.WriteLine("/log Log file to write to");
- Console.WriteLine("/ppo Pre-process the file, but perform no other processing");
- Console.WriteLine("/pause Pauses the application after execution to view the output");
- Console.WriteLine("/yes Default to yes to any questions asked");
- Console.WriteLine("/install Install assembly into the GAC");
- Console.WriteLine("/remove Remove assembly from the GAC");
- Console.WriteLine();
- Console.WriteLine("See 'prebuild /showtargets for a list of available targets");
- Console.WriteLine("See readme.txt or check out http://dnpb.sourceforge.net for more information");
- Console.WriteLine();
- }
+ private static void OutputUsage()
+ {
+ Console.WriteLine("Usage: prebuild /target [options]");
+ Console.WriteLine("Available command-line switches:");
+ Console.WriteLine();
+ Console.WriteLine("/target Target for Prebuild");
+ Console.WriteLine("/clean Clean the build files for the given target");
+ Console.WriteLine("/file XML file to process");
+ Console.WriteLine("/log Log file to write to");
+ Console.WriteLine("/ppo Pre-process the file, but perform no other processing");
+ Console.WriteLine("/pause Pauses the application after execution to view the output");
+ Console.WriteLine("/yes Default to yes to any questions asked");
+ Console.WriteLine("/install Install assembly into the GAC");
+ Console.WriteLine("/remove Remove assembly from the GAC");
+ Console.WriteLine();
+ Console.WriteLine("See 'prebuild /showtargets for a list of available targets");
+ Console.WriteLine("See readme.txt or check out http://dnpb.sourceforge.net for more information");
+ Console.WriteLine();
+ }
- private static void OutputTargets(Kernel kern)
- {
- Console.WriteLine("Targets available in Prebuild:");
- Console.WriteLine("");
- if(kern.Targets.Keys.Count > 0)
- {
- string[] targs = new string[kern.Targets.Keys.Count];
- kern.Targets.Keys.CopyTo(targs, 0);
- Array.Sort(targs);
- foreach(string target in targs)
- {
- Console.WriteLine(target);
- }
- }
- Console.WriteLine("");
- }
-
- #endregion
- }
+ private static void OutputTargets(Kernel kern)
+ {
+ Console.WriteLine("Targets available in Prebuild:");
+ Console.WriteLine("");
+ if (kern.Targets.Keys.Count > 0)
+ {
+ string[] targs = new string[kern.Targets.Keys.Count];
+ kern.Targets.Keys.CopyTo(targs, 0);
+ Array.Sort(targs);
+ foreach (string target in targs)
+ {
+ Console.WriteLine(target);
+ }
+ }
+ Console.WriteLine("");
+ }
+
+ #endregion
+ }
}