From 7e65590a55ba575d0086bdfc25addaf1051d799b Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 11 Sep 2010 01:13:08 +0100
Subject: Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific
nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a
"nant clean"
Source code is included for reference. This can go away again once Prebuild is updated with a more general mechanism for cleaning up files.
The Prebuild source code here can be built with nant, or regnerated for other tools using the prebuild at {root}/bin/Prebuild.exe
---
Prebuild/src/Core/Nodes/ConfigurationNode.cs | 225 +++++++++++++++++++++++++++
1 file changed, 225 insertions(+)
create mode 100644 Prebuild/src/Core/Nodes/ConfigurationNode.cs
(limited to 'Prebuild/src/Core/Nodes/ConfigurationNode.cs')
diff --git a/Prebuild/src/Core/Nodes/ConfigurationNode.cs b/Prebuild/src/Core/Nodes/ConfigurationNode.cs
new file mode 100644
index 0000000..cd2f740
--- /dev/null
+++ b/Prebuild/src/Core/Nodes/ConfigurationNode.cs
@@ -0,0 +1,225 @@
+#region BSD License
+/*
+Copyright (c) 2004-2005 Matthew Holmes (matthew@wildfiregames.com), Dan Moorehead (dan05a@gmail.com)
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the
+ distribution.
+* The name of the author may not be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#endregion
+
+using System;
+using System.Xml;
+
+using Prebuild.Core.Attributes;
+using Prebuild.Core.Interfaces;
+using Prebuild.Core.Utilities;
+
+namespace Prebuild.Core.Nodes
+{
+ ///
+ ///
+ ///
+ [DataNode("Configuration")]
+ public class ConfigurationNode : DataNode, ICloneable, IComparable
+ {
+ #region Fields
+
+ private string m_Name = "unknown";
+ private string m_Platform = "AnyCPU";
+ private OptionsNode m_Options;
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ConfigurationNode()
+ {
+ m_Options = new OptionsNode();
+ }
+
+ #endregion
+
+ #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);
+ }
+ }
+ }
+ }
+
+ ///
+ /// 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 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);
+ }
+ }
+
+ ///
+ /// Gets or sets the options.
+ ///
+ /// The options.
+ public OptionsNode Options
+ {
+ get
+ {
+ return m_Options;
+ }
+ set
+ {
+ m_Options = value;
+ }
+ }
+
+ #endregion
+
+ #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);
+
+ 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);
+ }
+
+ #endregion
+
+ #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;
+ }
+
+ #endregion
+
+ #region IComparable Members
+
+ public int CompareTo(object obj)
+ {
+ ConfigurationNode that = (ConfigurationNode) obj;
+ return this.m_Name.CompareTo(that.m_Name);
+ }
+
+ #endregion
+ }
+}
--
cgit v1.1