From 1e44ec84bd90ec9078027d1d9d78e83c7d305f2a Mon Sep 17 00:00:00 2001
From: BlueWall
Date: Tue, 31 Aug 2010 17:02:36 -0400
Subject: Build system upgrade:
Upgrading Prebuild.exe to correctly construct build solutions
for crossplatform tools such as xbuild, monodevelop and nant.
NOTE: Module prebuild files will need modification to work,
as the prebuild must correctly define the reference path for
all assemblies shipped in the OpenSimulator ./bin directory.
These include assemblies such as XMLRPC.dll, OpenMetaverse.dll,
Nini.dll, etc. . The entries should follow the form:
See the distributed prebuild.xml for further examples.
Crossplatform tools: xbuild and monodevelop use the
vs2008 OpenSim.sln and the .csproj files in each namespace.
Changes to the Prebuild.exe are against svn 322 and are included
in a patch attached to the mantis. And the dnpb source are
available@ svn co https://dnpb.svn.sourceforge.net/svnroot/dnpb dnpb
The patches are pending application by the dnpb team. After which,
the un-modified upstream Prebuild.exe will work as expected.
---
Prebuild/src/Prebuild.cs | 165 -----------------------------------------------
1 file changed, 165 deletions(-)
delete mode 100644 Prebuild/src/Prebuild.cs
(limited to 'Prebuild/src/Prebuild.cs')
diff --git a/Prebuild/src/Prebuild.cs b/Prebuild/src/Prebuild.cs
deleted file mode 100644
index 2d12b53..0000000
--- a/Prebuild/src/Prebuild.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-#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
-
-#region CVS Information
-/*
- * $Source$
- * $Author: jendave $
- * $Date: 2006-09-26 23:43:35 +0200 (ti, 26 sep 2006) $
- * $Revision: 168 $
- */
-#endregion
-
-using System;
-using System.Collections.Specialized;
-using System.IO;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.EnterpriseServices.Internal;
-
-using Prebuild.Core;
-using Prebuild.Core.Utilities;
-
-namespace Prebuild
-{
- ///
- ///
- ///
- 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;
-
- 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();
- }
- }
- catch(Exception ex)
- {
- Console.WriteLine("Unhandled error: {0}", ex.Message);
- //#if DEBUG
- Console.WriteLine("{0}", ex.StackTrace);
- //#endif
- }
- finally
- {
- if(kernel.PauseAfterFinish)
- {
- Console.WriteLine("\nPress enter to continue...");
- Console.ReadLine();
- }
- }
- }
-
- #endregion
-
- #region Private Methods
-
- private static void InstallAssembly(Kernel kernel)
- {
- Publish publish = new Publish();
- string file = kernel.CommandLine["install"];
- //Console.WriteLine(".."+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 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
- }
-}
--
cgit v1.1
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/Prebuild.cs | 165 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 165 insertions(+)
create mode 100644 Prebuild/src/Prebuild.cs
(limited to 'Prebuild/src/Prebuild.cs')
diff --git a/Prebuild/src/Prebuild.cs b/Prebuild/src/Prebuild.cs
new file mode 100644
index 0000000..081c89c
--- /dev/null
+++ b/Prebuild/src/Prebuild.cs
@@ -0,0 +1,165 @@
+#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
+
+#region CVS Information
+/*
+ * $Source$
+ * $Author: kunnis $
+ * $Date: 2009-04-15 02:33:14 +0100 (Wed, 15 Apr 2009) $
+ * $Revision: 308 $
+ */
+#endregion
+
+using System;
+using System.Collections.Specialized;
+using System.IO;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.EnterpriseServices.Internal;
+
+using Prebuild.Core;
+using Prebuild.Core.Utilities;
+
+namespace Prebuild
+{
+ ///
+ ///
+ ///
+ 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;
+
+ 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 !DEBUG
+ catch (Exception ex)
+ {
+ Console.WriteLine("Unhandled error: {0}", ex.Message);
+ Console.WriteLine("{0}", ex.StackTrace);
+ }
+#endif
+ finally
+ {
+ if(kernel != null && kernel.PauseAfterFinish)
+ {
+ Console.WriteLine("\nPress enter to continue...");
+ Console.ReadLine();
+ }
+ }
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private static void InstallAssembly(Kernel kernel)
+ {
+ Publish publish = new Publish();
+ string file = kernel.CommandLine["install"];
+ //Console.WriteLine(".."+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 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
+ }
+}
--
cgit v1.1