Add Copy task to Prebuild.exe (vsxxxx targets)

<Files>
    <Match pattern="*.cs" recurse="true"/>
    <Match pattern="../bin/MyConfig.xml" buildAction="Copy" recurse="false" destination="$(OutputPath)" />
  </Files>
iar_mods
BlueWall 2011-12-25 00:04:42 -05:00
parent b6cfe15c7c
commit f36fe45fa7
25 changed files with 3873 additions and 3769 deletions

View File

@ -1,65 +1,65 @@
BSD License BSD License
Copyright (c)2004-2008 Copyright (c)2004-2008
See AUTHORS file for list of copyright holders See AUTHORS file for list of copyright holders
Dave Hudson (jendave@yahoo.com), Dave Hudson (jendave@yahoo.com),
Matthew Holmes (matthew@wildfiregames.com) Matthew Holmes (matthew@wildfiregames.com)
Dan Moorehead (dan05a@gmail.com) Dan Moorehead (dan05a@gmail.com)
Rob Loach (http://www.robloach.net) Rob Loach (http://www.robloach.net)
C.J. Adams-Collier (cjac@colliertech.org) C.J. Adams-Collier (cjac@colliertech.org)
http://dnpb.sourceforge.net http://dnpb.sourceforge.net
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
1. Redistributions of source code must retain the above copyright notice, 1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, 2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution. and/or other materials provided with the distribution.
3. The names of the authors may not be used to endorse or promote 3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior written products derived from this software without specific prior written
permission. permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
--- ---
Portions of src/Core/Targets/AutotoolsTarget.cs Portions of src/Core/Targets/AutotoolsTarget.cs
// Copyright (C) 2006 Novell, Inc (http://www.novell.com) // Copyright (C) 2006 Novell, Inc (http://www.novell.com)
// //
// Permission is hereby granted, free of charge, to any person obtaining // Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the // a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including // "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish, // without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to // distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to // permit persons to whom the Software is furnished to do so, subject to
// the following conditions: // the following conditions:
// //
// The above copyright notice and this permission notice shall be // The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software. // included in all copies or substantial portions of the Software.
// //
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,200 +1,200 @@
Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, MonoDevelop, and NAnt. Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, MonoDevelop, and NAnt.
Documentation and downloads are available at http://dnpb.sourceforge.net. Documentation and downloads are available at http://dnpb.sourceforge.net.
Prebuild is licensed under the BSD license. Prebuild is licensed under the BSD license.
[ XXXXXXX XX, XXX - 1.3.2 ] [ XXXXXXX XX, XXX - 1.3.2 ]
+ Added Keyfile signing to NAnt target and VS2005 target + Added Keyfile signing to NAnt target and VS2005 target
+ Updated XSD file to 1.7 + Updated XSD file to 1.7
+ Boo and VisualBasic Language support in VS2005 target + Boo and VisualBasic Language support in VS2005 target
+ Added basic Autotools target. It creates a non-recursive Autotools system. + Added basic Autotools target. It creates a non-recursive Autotools system.
! Multiple files can be excluded from the Match node ! Multiple files can be excluded from the Match node
! VS2005 now handles .resx files correctly. ! VS2005 now handles .resx files correctly.
! NAnt and Autotools now handle defines ! NAnt and Autotools now handle defines
! NAnt and Autotools now handle resources ! NAnt and Autotools now handle resources
+ Conditional XML variables can be passed through the command line. + Conditional XML variables can be passed through the command line.
+ Added /install and /remove command line flags to install and remove assemblies from the GAC + Added /install and /remove command line flags to install and remove assemblies from the GAC
+ Many fixes to VS2005 target + Many fixes to VS2005 target
[ July 21, 2006 - 1.3.1 ] [ July 21, 2006 - 1.3.1 ]
! VS2005 fixes from Rob Loach ! VS2005 fixes from Rob Loach
! NAnt fixes from Rob Loach and David Hudson ! NAnt fixes from Rob Loach and David Hudson
! XML doc fixes from Rob Loach ! XML doc fixes from Rob Loach
+ Added SharpDevelop2 target (really just uses VS2005 target) + Added SharpDevelop2 target (really just uses VS2005 target)
! Fixed bug with BuildEvents in Monodevelop target ! Fixed bug with BuildEvents in Monodevelop target
+ Passing /yes will default to answering yes to any warnings + Passing /yes will default to answering yes to any warnings
[ February 28, 2006 - 1.3 ] [ February 28, 2006 - 1.3 ]
+ Added MonoDevelop target. + Added MonoDevelop target.
+ Added NAnt target. + Added NAnt target.
+ Lots of fixes to all targets. + Lots of fixes to all targets.
* Cleaned up the code using FXCop. * Cleaned up the code using FXCop.
* Updated schema to 1.6 to fix a typo and add a new parameter. * Updated schema to 1.6 to fix a typo and add a new parameter.
* jendave is now the maintainer of the project. RobLoach has been added as a developer. * jendave is now the maintainer of the project. RobLoach has been added as a developer.
* Removed references to 'dnpb'. * Removed references to 'dnpb'.
+ Added rudimentary support for pre- and post- build scripts + Added rudimentary support for pre- and post- build scripts
* Updated examples. * Updated examples.
[ August 5, 2004 - 1.2 ] [ August 5, 2004 - 1.2 ]
+ Added Visual Studio Express (vs2005express) target contributed by Borrillis and modified for use with different languages + Added Visual Studio Express (vs2005express) target contributed by Borrillis and modified for use with different languages
+ Added the allowedgroups command line option followed by a pipe-delimited list of project group filter flags (eg. Group1|Group2) allow optional filtering of all projects that dont have at least one of these flags + Added the allowedgroups command line option followed by a pipe-delimited list of project group filter flags (eg. Group1|Group2) allow optional filtering of all projects that dont have at least one of these flags
+ Added the filterGroups XML attribute to the project node and updated the scheme to v1.5 for this addition, it is used to specified the delimited list of filter groups to which a project belongs + Added the filterGroups XML attribute to the project node and updated the scheme to v1.5 for this addition, it is used to specified the delimited list of filter groups to which a project belongs
* Modified the removedir command line option to allow for a pipe-delimited list of directory names * Modified the removedir command line option to allow for a pipe-delimited list of directory names
! Modified the resource loading code to search for resourced without the prepended namespace (as Visual Studio .NET does it) to allow for it to be compiled with SharpDevelop as well ! Modified the resource loading code to search for resourced without the prepended namespace (as Visual Studio .NET does it) to allow for it to be compiled with SharpDevelop as well
+ Added the GenerateXmlDocFile boolean option to the Options XML element + Added the GenerateXmlDocFile boolean option to the Options XML element
* Changed the behavior of the XmlDocFile option so that if not specified it uses the assemblyName (without file extension) + .xml for the file name instead of just not generating the file since the new GenerateXmlDocFile takes care of this * Changed the behavior of the XmlDocFile option so that if not specified it uses the assemblyName (without file extension) + .xml for the file name instead of just not generating the file since the new GenerateXmlDocFile takes care of this
[ January 3, 2004 - 1.1 ] [ January 3, 2004 - 1.1 ]
! Replaced regex use for more efficient manual parsing to allow use on non-windows platforms with Mono which has Regex problems ! Replaced regex use for more efficient manual parsing to allow use on non-windows platforms with Mono which has Regex problems
+ Added the checkOsVars attribute to the root element for enabling interpolation for Enviroment variables in the form ${var}, otherwise no checking is performed for efficiency-sake + Added the checkOsVars attribute to the root element for enabling interpolation for Enviroment variables in the form ${var}, otherwise no checking is performed for efficiency-sake
* Make the version attribute on the root element optional as it isn't used and not needed since the schema url contains the version * Make the version attribute on the root element optional as it isn't used and not needed since the schema url contains the version
[ December 30, 2004 - 1.1 ] [ December 30, 2004 - 1.1 ]
! Applied Leed's fix for SharpDevelop references ! Applied Leed's fix for SharpDevelop references
+ Rewrote much of the processing for better validation and without the use of a temp file + Rewrote much of the processing for better validation and without the use of a temp file
+ Added support for configurations at the project level which are named All. They now apply changes to all Solution level defined configs + Added support for configurations at the project level which are named All. They now apply changes to all Solution level defined configs
* Changed all spaces into tabs * Changed all spaces into tabs
+ Added support for the None build action + Added support for the None build action
* Replaced all sequence's in the XML schema for all's because the order doesn't matter since the xml file is loaded into an XmlDocument * Replaced all sequence's in the XML schema for all's because the order doesn't matter since the xml file is loaded into an XmlDocument
[ December 25, 2004 - 1.0 ] [ December 25, 2004 - 1.0 ]
+ Added the /removedir option for cleaning directories like obj before file releases + Added the /removedir option for cleaning directories like obj before file releases
+ Changed WriteTempXml() and the new DeleteTempXml() methods to be compiled only in DEBUG builds + Changed WriteTempXml() and the new DeleteTempXml() methods to be compiled only in DEBUG builds
* Made path optional for Match elements (defaults to current directory) and updates schema for it * Made path optional for Match elements (defaults to current directory) and updates schema for it
! Fixed XML example in the readme.txt ! Fixed XML example in the readme.txt
+ Added example xml files to docs directory + Added example xml files to docs directory
* Updated license.txt to add Dan Moorehead and update copyright years * Updated license.txt to add Dan Moorehead and update copyright years
+ Updated prebuild.xml to take advantage of the default path attribute for match elements + Updated prebuild.xml to take advantage of the default path attribute for match elements
+ Updated Clean to delete the obj directories + Updated Clean to delete the obj directories
[ December 25, 2004 - 0.13 ] [ December 25, 2004 - 0.13 ]
+ Added dnpb.exe so that it can be used to generate the project files + Added dnpb.exe so that it can be used to generate the project files
+ Added dnpb.ico + Added dnpb.ico
* Added parameterless Write statement to Log for writing a single line * Added parameterless Write statement to Log for writing a single line
* Changed scehema to version 1.3 for support of icon attribute * Changed scehema to version 1.3 for support of icon attribute
* Added support for All configuration name under a Project node signifying common settings for all configurations * Added support for All configuration name under a Project node signifying common settings for all configurations
! Fixed the SupressWarnings by adding the corresponding field to OptionsNode ! Fixed the SupressWarnings by adding the corresponding field to OptionsNode
* Wrote documentation in docs/readme.txt * Wrote documentation in docs/readme.txt
* Added Dan Moorehead to copyrights and extended date from 2004 to 2004-2005 * Added Dan Moorehead to copyrights and extended date from 2004 to 2004-2005
* Updated prebuild.xml * Updated prebuild.xml
* Optimized Log class * Optimized Log class
* Updated OutputUsage() * Updated OutputUsage()
* /clean targets all by default * /clean targets all by default
* No log file is used by default, /log without value specified uses default file name * No log file is used by default, /log without value specified uses default file name
+ Added support for the /pause which pauses the utility after execution to observe output + Added support for the /pause which pauses the utility after execution to observe output
[ September 27, 2004 - 0.12.2a ] [ September 27, 2004 - 0.12.2a ]
! Fixed a nasty bug when trying to delete our temp file for pre-processing. ! Fixed a nasty bug when trying to delete our temp file for pre-processing.
[ September 15, 2004 - 0.12.2 ] [ September 15, 2004 - 0.12.2 ]
+ Expanded platform identification, thanks to the NAnt guys for shedding some + Expanded platform identification, thanks to the NAnt guys for shedding some
light on how to properly check for UNIX platforms! Thanks guys! light on how to properly check for UNIX platforms! Thanks guys!
* POSIX OS identifier changed to UNIX. Valid OS names are now "Win32", "UNIX", * POSIX OS identifier changed to UNIX. Valid OS names are now "Win32", "UNIX",
and "Unknown". and "Unknown".
! Fixed SharpDevelop target to properly use the 'rootNamespace' attribute of ! Fixed SharpDevelop target to properly use the 'rootNamespace' attribute of
the Project tag. the Project tag.
+ New command-line switch, /ppo, forces DNPB to pre-process the file and write + New command-line switch, /ppo, forces DNPB to pre-process the file and write
the pre-processed file. This allows you to test/debug your pre-processor the pre-processed file. This allows you to test/debug your pre-processor
macros. No other processing will be done. You can specify a target file as macros. No other processing will be done. You can specify a target file as
a paramter for the /ppo switch, or DNPB will write the file 'preprocessed.xml' a paramter for the /ppo switch, or DNPB will write the file 'preprocessed.xml'
if you do not specify a file. if you do not specify a file.
+ The Match tag now has a 'buildAction' attribute which functions exactly like + The Match tag now has a 'buildAction' attribute which functions exactly like
the attribute of the same name for the File tag. the attribute of the same name for the File tag.
[ August 5, 2004 - 0.12.1 ] [ August 5, 2004 - 0.12.1 ]
+ Added environment variable expansion for all values. Environment variables + Added environment variable expansion for all values. Environment variables
should be listed in the form ${VAR}. should be listed in the form ${VAR}.
[ July 30, 2004 - 0.12.0 ] [ July 30, 2004 - 0.12.0 ]
+ Added preprocessing via XML processing information tags. Available tags + Added preprocessing via XML processing information tags. Available tags
are: <?if <exp> ?>, <?elseif <exp> ?>, <?else ?> and <?endif ?>. The are: <?if <exp> ?>, <?elseif <exp> ?>, <?else ?> and <?endif ?>. The
current expression parser is very basic, but will be replaced with a more current expression parser is very basic, but will be replaced with a more
capable parser over time. Current operators available are: =, !=, <, >, capable parser over time. Current operators available are: =, !=, <, >,
<=, >=. Current test variables available: OS, RuntimeVersion, RuntimeMajor, <=, >=. Current test variables available: OS, RuntimeVersion, RuntimeMajor,
RuntimeMinor, RuntimeRevision. RuntimeMinor, RuntimeRevision.
[ July 27, 2004 - 0.11.4 ] [ July 27, 2004 - 0.11.4 ]
+ Added 'useRegex' attribute to the Match tag. Matches can now use regular + Added 'useRegex' attribute to the Match tag. Matches can now use regular
expressions to match filenames. expressions to match filenames.
+ Added the 'assemblyName' attribute to the Project tag. Projects can now + Added the 'assemblyName' attribute to the Project tag. Projects can now
set their output assembly name. set their output assembly name.
! Fixed several bugs in the way that Project tags inheirt their parent ! Fixed several bugs in the way that Project tags inheirt their parent
Solutions configuration options. This operation should now work fully as Solutions configuration options. This operation should now work fully as
intended. intended.
! Due to some wierdness, Project Guid's are now stored as part of the Project ! Due to some wierdness, Project Guid's are now stored as part of the Project
node and created at parse time. node and created at parse time.
[ May 11, 2004 - 0.11.3 ] [ May 11, 2004 - 0.11.3 ]
! Fixed a bug where I was writing the wrong property name for a projects root ! Fixed a bug where I was writing the wrong property name for a projects root
namespace. namespace.
! Removed a DEBUG statement I had left in the code in 0.11.2. ! Removed a DEBUG statement I had left in the code in 0.11.2.
! Fixed a bug in the VS2002 writer which caused the version variables to not ! Fixed a bug in the VS2002 writer which caused the version variables to not
be overriden correctly. be overriden correctly.
+ Added the rootNamespace property to the <Project> element, allowing you to + Added the rootNamespace property to the <Project> element, allowing you to
specify the root namespace. specify the root namespace.
* /target and /clean are now mutually exclusive command line switches, and * /target and /clean are now mutually exclusive command line switches, and
they both now take the all option. In the case of /target all, all build they both now take the all option. In the case of /target all, all build
file for all targets will be created. In the case of /clean all, the user file for all targets will be created. In the case of /clean all, the user
will be prompted to make sure they want to do it, and if so, will clean will be prompted to make sure they want to do it, and if so, will clean
all build files for all targets. all build files for all targets.
[ April 22, 2004 - 0.11.2 ] [ April 22, 2004 - 0.11.2 ]
! Fixed a bug with the /file command-line operator. Was using the unresolved ! Fixed a bug with the /file command-line operator. Was using the unresolved
file path rather then the resolved one, was making the attempt to open the file path rather then the resolved one, was making the attempt to open the
dnpb file fail. dnpb file fail.
! Fixed a bug in the schema that required at least 1 solution and 1 reference ! Fixed a bug in the schema that required at least 1 solution and 1 reference
path. We can do just fine with 0 of either of these. Some files may be all path. We can do just fine with 0 of either of these. Some files may be all
<Process> statements and not have any <Solution> tags. <Process> statements and not have any <Solution> tags.
! Fixed a bug that caused the project references not to be written with the ! Fixed a bug that caused the project references not to be written with the
SharpDevelop target. SharpDevelop target.
* Changed the schema to version 1.2, allowing for Configuration nodes to exist * Changed the schema to version 1.2, allowing for Configuration nodes to exist
under project nodes. The inheritance of values is hierarchical. Meaning, if under project nodes. The inheritance of values is hierarchical. Meaning, if
you define a configuration named Debug at the Soltion level, and one by the you define a configuration named Debug at the Soltion level, and one by the
same name at the Project level, the one at the Project level will first same name at the Project level, the one at the Project level will first
inherit the options of the Solution level configuration, then set it's own inherit the options of the Solution level configuration, then set it's own
options. If you define a configuration at the Project level and it does not options. If you define a configuration at the Project level and it does not
exist at the Solution level, it will be created at the Solution level. exist at the Solution level, it will be created at the Solution level.
* Project references should now work correctly across the board. Note that due * Project references should now work correctly across the board. Note that due
to a restriction in Visual Studio, you can only reference projects in the same to a restriction in Visual Studio, you can only reference projects in the same
solution. solution.
[ April 21, 2004 - 0.11.1 ] [ April 21, 2004 - 0.11.1 ]
! Fixed a problem with resolving paths in various targets. Was not properly ! Fixed a problem with resolving paths in various targets. Was not properly
setting the CWD. setting the CWD.
* Schema updated to 1.1, moving the ReferencePath element from the Options * Schema updated to 1.1, moving the ReferencePath element from the Options
element to the Project element. This makes more logical sense, given that element to the Project element. This makes more logical sense, given that
reference paths are resolved relative to the project path. Any prebuild.xml reference paths are resolved relative to the project path. Any prebuild.xml
file referecning verison 1.0 will fail! Please update to the 1.1 schema. file referecning verison 1.0 will fail! Please update to the 1.1 schema.
[ April 19, 2004 - 0.11.0 ] [ April 19, 2004 - 0.11.0 ]
* Added several attributes across the code to make FxCop happy * Added several attributes across the code to make FxCop happy
! Fixed bugs in reference paths being written in the VS targets. ! Fixed bugs in reference paths being written in the VS targets.
! Fixed a bug in ProjectNode which was doing two CWDStack.Push() calls instead of ! Fixed a bug in ProjectNode which was doing two CWDStack.Push() calls instead of
a Push/Pop pair. Was wreaking havoc with <Process> tags. a Push/Pop pair. Was wreaking havoc with <Process> tags.
! Fixed some bugs in the path tracking, both the Project and Solution nodes now ! Fixed some bugs in the path tracking, both the Project and Solution nodes now
have a FullPath property, which is the full path to the file resolved at load have a FullPath property, which is the full path to the file resolved at load
time. This should fix all path relativity problems. time. This should fix all path relativity problems.
+ Added new /clean switch, allowing the target to clean up any files it generated. + Added new /clean switch, allowing the target to clean up any files it generated.
in accordance, the ITarget interface has been updated to support a new Clean() in accordance, the ITarget interface has been updated to support a new Clean()
method. method.
+ Completed addition of the <Process> tag, to allow the referencing of external + Completed addition of the <Process> tag, to allow the referencing of external
prebuild.xml files. prebuild.xml files.
+ Added the runtime attribute to the Project element. This allows the developer + Added the runtime attribute to the Project element. This allows the developer
to specify which runtime a project should target (Mono or Microsoft). This is to specify which runtime a project should target (Mono or Microsoft). This is
of course ignored in certain targets like the Visual Studio targets. of course ignored in certain targets like the Visual Studio targets.
+ Added the SharpDevelop target. + Added the SharpDevelop target.
[ April 13, 2004 - 0.10.1a ] [ April 13, 2004 - 0.10.1a ]
+ Added the buildAction attribute to the File node. This is needed for dnpb + Added the buildAction attribute to the File node. This is needed for dnpb
to even be able to bootstrap itself (dnpb-1.0.xsd must be an embedded resource) to even be able to bootstrap itself (dnpb-1.0.xsd must be an embedded resource)
[ April 13, 2004 - 0.10.1 ] [ April 13, 2004 - 0.10.1 ]
* First Release * First Release
[ Key ] [ Key ]
* = Change or information * = Change or information
+ = Addition + = Addition
! = Bug Fix ! = Bug Fix

BIN
Prebuild/Prebuild.exe Executable file

Binary file not shown.

View File

@ -1,274 +1,274 @@
Prebuild Instructions Prebuild Instructions
Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, SharpDevelop2, MonoDevelop, and NAnt. Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, SharpDevelop2, MonoDevelop, and NAnt.
_______________________________________________________________________________ _______________________________________________________________________________
Overview Overview
Prebuild can be either be run from the command line to generate the Prebuild can be either be run from the command line to generate the
project and make files or you can execute the included batch (*.bat) project and make files or you can execute the included batch (*.bat)
and Unix Shell script (*.sh) files. and Unix Shell script (*.sh) files.
_______________________________________________________________________________ _______________________________________________________________________________
The currently supported developement tools and their associated batch The currently supported developement tools and their associated batch
and shell script files. and shell script files.
Visual Studio .NET 2005 (VS2005.bat) Visual Studio .NET 2005 (VS2005.bat)
Visual Studio .NET 2003 (VS2003.bat) Visual Studio .NET 2003 (VS2003.bat)
Visual Studio .NET 2002 (VS2002.bat) Visual Studio .NET 2002 (VS2002.bat)
SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/ SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/ SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/ MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/
NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/ NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/
Autotools (autotools.bat and autotools.sh) - http://en.wikipedia.org/wiki/GNU_build_system Autotools (autotools.bat and autotools.sh) - http://en.wikipedia.org/wiki/GNU_build_system
Notes: Notes:
A Unix Shell script is provided for MonoDevelop, as it does not run on A Unix Shell script is provided for MonoDevelop, as it does not run on
Windows at this time. Windows at this time.
Visual Studio .NET 2005 and the Visual Express IDE's can import Visual Studio .NET 2005 and the Visual Express IDE's can import
solutions from older versions of Visual Studio .NET. solutions from older versions of Visual Studio .NET.
Makefiles are not currently supported. Makefiles are not currently supported.
_______________________________________________________________________________ _______________________________________________________________________________
Command Line Syntax: Command Line Syntax:
Example: Example:
> Prebuild /target vs2003 > Prebuild /target vs2003
This will generate the project files for Visual Studio.NET 2003 and This will generate the project files for Visual Studio.NET 2003 and
place the redirect the log to a file named PrebuildLog.txt in the place the redirect the log to a file named PrebuildLog.txt in the
parent directory parent directory
The syntax structure is as below, where commandParameter is optional The syntax structure is as below, where commandParameter is optional
depending on the command and you can provide several option-value depending on the command and you can provide several option-value
pairs. pairs.
Note: The '> ' signifies the command prompt, do not enter this literally Note: The '> ' signifies the command prompt, do not enter this literally
> Prebuild /<option> <commandParameter> > Prebuild /<option> <commandParameter>
> Prebuild /target vs2003 /pause > Prebuild /target vs2003 /pause
> Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml > Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml
> Prebuild /target sharpdev /log > Prebuild /target sharpdev /log
> Prebuild /removedir obj|bin > Prebuild /removedir obj|bin
> Prebuild /target vs2003 /allowedgroups Group1|Group2 > Prebuild /target vs2003 /allowedgroups Group1|Group2
> Prebuild /clean > Prebuild /clean
> Prebuild /clean /yes > Prebuild /clean /yes
> Prebuild /clean vs2003 > Prebuild /clean vs2003
_______________________________________________________________________________ _______________________________________________________________________________
Command Line Options: Command Line Options:
/usage - Shows the help information on how to use Prebuild and what /usage - Shows the help information on how to use Prebuild and what
the different options are and what they do the different options are and what they do
/clean - The project files generated for the target type specified as /clean - The project files generated for the target type specified as
a parameter for this option will be deleted. If no value is specified a parameter for this option will be deleted. If no value is specified
or if 'all' is specified, then project files for all the target types or if 'all' is specified, then project files for all the target types
will be deleted. will be deleted.
/target - Specified the name of the development tool for which project /target - Specified the name of the development tool for which project
or make files will be generated. Possible parameter values include: or make files will be generated. Possible parameter values include:
vs2003, vs2002, sharpdev vs2003, vs2002, sharpdev
/file - Specifies the name of the XML which defines what files are to /file - Specifies the name of the XML which defines what files are to
be referenced by the generated project files as well as configures the be referenced by the generated project files as well as configures the
options for them. If not specified, prebuild.xml in the current options for them. If not specified, prebuild.xml in the current
directory will be used as the default. directory will be used as the default.
/log - Specified the log file that should be written to for build /log - Specified the log file that should be written to for build
errors. If this option is not specified, no log file is generated, errors. If this option is not specified, no log file is generated,
but if just no value is specified, then the defaul filename will be but if just no value is specified, then the defaul filename will be
used for the log (Prebuild.log). used for the log (Prebuild.log).
/ppo - Preprocesses the xml file to test for syntax errors or problems /ppo - Preprocesses the xml file to test for syntax errors or problems
but doesn't generate the files but doesn't generate the files
/pause - Shows the console until you press a key so that you can view /pause - Shows the console until you press a key so that you can view
the messages written while performing the specified actions. the messages written while performing the specified actions.
This allows you to check if an errors occurred and - if so - what it This allows you to check if an errors occurred and - if so - what it
was. was.
/showtargets - Shows a list of all the targets that can be specified /showtargets - Shows a list of all the targets that can be specified
as values for the /clean and /target commands. as values for the /clean and /target commands.
/allowedgroups - This is followed by a pipe-delimited list of project /allowedgroups - This is followed by a pipe-delimited list of project
group filter flags (eg. Group1|Group2) allow optional filtering of all group filter flags (eg. Group1|Group2) allow optional filtering of all
projects that dont have at least one of these flags projects that dont have at least one of these flags
/removedir - This is followed by a pipe-delimited list of directory /removedir - This is followed by a pipe-delimited list of directory
names that will be deleted while recursivly searching the directory of names that will be deleted while recursivly searching the directory of
the prebuild application and its child directories (eg. use obj|bin to the prebuild application and its child directories (eg. use obj|bin to
delete all output and temporary directories before file releases) delete all output and temporary directories before file releases)
/yes - Answer yes to any warnings (e.g. when cleaning all projects). /yes - Answer yes to any warnings (e.g. when cleaning all projects).
_______________________________________________________________________________ _______________________________________________________________________________
Example Batch Files and Shell Scripts Example Batch Files and Shell Scripts
NOTE: Common batch and shell script files are included with Prebuild source and file releases. NOTE: Common batch and shell script files are included with Prebuild source and file releases.
______________________________ ______________________________
MonoDevelop MonoDevelop
#!/bin/sh #!/bin/sh
# Generates a solution (.mds) and a set of project files (.mdp) # Generates a solution (.mds) and a set of project files (.mdp)
# for MonoDevelop, a Mono port of SharpDevelop # for MonoDevelop, a Mono port of SharpDevelop
# (http://icsharpcode.net/OpenSource/SD/Default.aspx) # (http://icsharpcode.net/OpenSource/SD/Default.aspx)
./Prebuild /target monodev /pause ./Prebuild /target monodev /pause
______________________________ ______________________________
Visual Studio .NET 2003 Visual Studio .NET 2003
@rem Generates a solution (.sln) and a set of project files (.csproj) @rem Generates a solution (.sln) and a set of project files (.csproj)
@rem for Microsoft Visual Studio .NET 2002 @rem for Microsoft Visual Studio .NET 2002
Prebuild /target vs2003 /pause Prebuild /target vs2003 /pause
Notes: Notes:
Text after lines that start with @rem are comments and are not evaluated Text after lines that start with @rem are comments and are not evaluated
You can also place pause on the last line instead of specifing the /pause command. You can also place pause on the last line instead of specifing the /pause command.
_______________________________________________________________________________ _______________________________________________________________________________
Example XML Configuration File Example XML Configuration File
Note: Note:
XML Comments (<!-- Comment -->) are used to markup the prebuild.xml XML Comments (<!-- Comment -->) are used to markup the prebuild.xml
file with notes file with notes
The below file may be out-of-date, however the RealmForge Prebuild The below file may be out-of-date, however the RealmForge Prebuild
file serves as an up-to-date and extensive example. file serves as an up-to-date and extensive example.
It can be viewed using Tigris.org's WebSVN It can be viewed using Tigris.org's WebSVN
(http://realmforge.tigris.org/source/browse/realmforge/trunk/src/prebuild.xml) (http://realmforge.tigris.org/source/browse/realmforge/trunk/src/prebuild.xml)
by just clicking on the "view file" link for the latest revision. by just clicking on the "view file" link for the latest revision.
_________________________________ _________________________________
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--The version of the XML schema specified in the version and xmlns attributes should match the one for which the version of Prebuild.exe used was compiled for. In this example it is the version 1.3 schema, you can find the XSD schema file at the url specified in the xmlns attribute. --> <!--The version of the XML schema specified in the version and xmlns attributes should match the one for which the version of Prebuild.exe used was compiled for. In this example it is the version 1.3 schema, you can find the XSD schema file at the url specified in the xmlns attribute. -->
<Prebuild version="1.6" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.6.xsd"> <Prebuild version="1.6" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.6.xsd">
<Solution name="RealmForge"> <!--The title and file name for the solution, combine, workspace, or project group (depending on what development tool you are using)--> <Solution name="RealmForge"> <!--The title and file name for the solution, combine, workspace, or project group (depending on what development tool you are using)-->
<!--Configurations found as children of Solution are used as templates for the configurations found in the project, this allows you to avoid writing the same options in each project (and maintaining each of these). You can provide defaults and then override them in the configurations defined for each project. All options are optional.--> <!--Configurations found as children of Solution are used as templates for the configurations found in the project, this allows you to avoid writing the same options in each project (and maintaining each of these). You can provide defaults and then override them in the configurations defined for each project. All options are optional.-->
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>
<!-- simple logically expressions can be evaluated, if, else, elseif, and endif are valid statements. Note that it is not neccisary to define POSIX or WIN32 --> <!-- simple logically expressions can be evaluated, if, else, elseif, and endif are valid statements. Note that it is not neccisary to define POSIX or WIN32 -->
<?if OS = "Win32" ?> <?if OS = "Win32" ?>
<CompilerDefines>DEBUG;TRACE;WIN32</CompilerDefines> <CompilerDefines>DEBUG;TRACE;WIN32</CompilerDefines>
<?else ?> <?else ?>
<CompilerDefines>DEBUG;TRACE;POSIX</CompilerDefines> <CompilerDefines>DEBUG;TRACE;POSIX</CompilerDefines>
<?endif ?> <?endif ?>
<OptimizeCode>false</OptimizeCode> <OptimizeCode>false</OptimizeCode>
<CheckUnderflowOverflow>false</CheckUnderflowOverflow> <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
<AllowUnsafe>false</AllowUnsafe> <AllowUnsafe>false</AllowUnsafe>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<!-The filter for the number of warnings or errors shown and the tolerance level as to what is an error. This is value from 0 to 4 where 4 is the most strict (least tolerent).--> <!-The filter for the number of warnings or errors shown and the tolerance level as to what is an error. This is value from 0 to 4 where 4 is the most strict (least tolerent).-->
<WarningsAsErrors>false</WarningsAsErrors> <WarningsAsErrors>false</WarningsAsErrors>
<SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings> <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
<!-- A semicolon ';' delimited list of the warnings that are filtered and not shown in the output window during compiling a project. Only include the number portion of the warning codes that are shown in output during compilation (eg CS1591, should be entered as 1591)--> <!-- A semicolon ';' delimited list of the warnings that are filtered and not shown in the output window during compiling a project. Only include the number portion of the warning codes that are shown in output during compilation (eg CS1591, should be entered as 1591)-->
<OutputPath>..\bin</OutputPath> <OutputPath>..\bin</OutputPath>
<DebugInformation>true</DebugInformation> <DebugInformation>true</DebugInformation>
<RegisterComInterop>false</RegisterComInterop> <RegisterComInterop>false</RegisterComInterop>
<IncrementalBuild>true</IncrementalBuild> <IncrementalBuild>true</IncrementalBuild>
<BaseAddress>285212672</BaseAddress> <BaseAddress>285212672</BaseAddress>
<FileAlignment>4096</FileAlignment> <FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib> <NoStdLib>false</NoStdLib>
<XmlDocFile>Docs.xml</XmlDocFile> <XmlDocFile>Docs.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<Configuration name="Release"> <!-- You can define multple configurations that projects can have, but there is no way to define which one is selected by default as this is a part of the user preferences for a project, not the solution or project files --> <Configuration name="Release"> <!-- You can define multple configurations that projects can have, but there is no way to define which one is selected by default as this is a part of the user preferences for a project, not the solution or project files -->
<Options> <Options>
<CompilerDefines>TRACE</CompilerDefines> <CompilerDefines>TRACE</CompilerDefines>
<OptimizeCode>true</OptimizeCode> <OptimizeCode>true</OptimizeCode>
<CheckUnderflowOverflow>false</CheckUnderflowOverflow> <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
<AllowUnsafe>false</AllowUnsafe> <AllowUnsafe>false</AllowUnsafe>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<WarningsAsErrors>false</WarningsAsErrors> <WarningsAsErrors>false</WarningsAsErrors>
<SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings> <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
<OutputPath>..\bin</OutputPath> <OutputPath>..\bin</OutputPath>
<DebugInformation>false</DebugInformation> <DebugInformation>false</DebugInformation>
<RegisterComInterop>false</RegisterComInterop> <RegisterComInterop>false</RegisterComInterop>
<IncrementalBuild>true</IncrementalBuild> <IncrementalBuild>true</IncrementalBuild>
<BaseAddress>285212672</BaseAddress> <BaseAddress>285212672</BaseAddress>
<FileAlignment>4096</FileAlignment> <FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib> <NoStdLib>false</NoStdLib>
<GenerateXmlDocFile>true</GenerateXmlDocFile> <GenerateXmlDocFile>true</GenerateXmlDocFile>
<XmlDocFile>Docs.xml</XmlDocFile> <XmlDocFile>Docs.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<!-- One of the projects that is included in the Solution --> <!-- One of the projects that is included in the Solution -->
<Project name="RealmForge.Utility" Language="VisualBasic" path="Utility" type="Library" assemblyName="RealmForge.Utility" rootNamespace="RealmForge"> <Project name="RealmForge.Utility" Language="VisualBasic" path="Utility" type="Library" assemblyName="RealmForge.Utility" rootNamespace="RealmForge">
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>
<OutputPath>..\bin\lib\Utility</OutputPath> <OutputPath>..\bin\lib\Utility</OutputPath>
<XmlDocFile>RealmForge.Utility.xml</XmlDocFile> <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<Configuration name="Release"> <Configuration name="Release">
<Options> <Options>
<OutputPath>..\bin\lib\Utility</OutputPath> <OutputPath>..\bin\lib\Utility</OutputPath>
<XmlDocFile>RealmForge.Utility.xml</XmlDocFile> <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<ReferencePath>../bin</ReferencePath> <ReferencePath>../bin</ReferencePath>
<Reference name="System"/> <Reference name="System"/>
<Reference name="System.Data"/> <Reference name="System.Data"/>
<Reference name="System.Drawing"/> <Reference name="System.Drawing"/>
<Reference name="System.Xml"/> <Reference name="System.Xml"/>
<Reference name="System.Runtime.Serialization.Formatters.Soap"/> <Reference name="System.Runtime.Serialization.Formatters.Soap"/>
<Reference name="ICSharpCode.SharpZipLib"/> <Reference name="ICSharpCode.SharpZipLib"/>
<Files> <Files>
<Match path="." pattern="*.vb" recurse="true"/> <Match path="." pattern="*.vb" recurse="true"/>
</Files> </Files>
</Project> </Project>
<!-- Another projects that is included in the Solution --> <!-- Another projects that is included in the Solution -->
<Project name="DemoGame" Language="C#" path="DemoGame" type="WinExe" icon="..\bin\RealmForge.ico" assemblyName="DemoGame" rootNamespace="RealmForge"> <Project name="DemoGame" Language="C#" path="DemoGame" type="WinExe" icon="..\bin\RealmForge.ico" assemblyName="DemoGame" rootNamespace="RealmForge">
<!-- icon is used to define the location of the .ico file that is embeeded in the assembly when the project is compiled. This is relative to the project path --> <!-- icon is used to define the location of the .ico file that is embeeded in the assembly when the project is compiled. This is relative to the project path -->
<!--type defines the type of project, valid types are Library (.dll), WinExe (.exe), and Exe (.exe). WinExe is not windows specific, it just defines that it is a GUI application and that no Console or Command window will show when it is started--> <!--type defines the type of project, valid types are Library (.dll), WinExe (.exe), and Exe (.exe). WinExe is not windows specific, it just defines that it is a GUI application and that no Console or Command window will show when it is started-->
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>
<OutputPath>..\bin</OutputPath> <OutputPath>..\bin</OutputPath>
<XmlDocFile>DemoGame.xml</XmlDocFile> <XmlDocFile>DemoGame.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<Configuration name="Release"> <Configuration name="Release">
<Options> <Options>
<OutputPath>..\bin</OutputPath> <OutputPath>..\bin</OutputPath>
<XmlDocFile>DemoGame.xml</XmlDocFile> <XmlDocFile>DemoGame.xml</XmlDocFile>
</Options> </Options>
</Configuration> </Configuration>
<ReferencePath>../bin</ReferencePath> <ReferencePath>../bin</ReferencePath>
<Reference name="System"/> <!-- Assemblies that are located in the GAC (installed, global) can be referenced--> <Reference name="System"/> <!-- Assemblies that are located in the GAC (installed, global) can be referenced-->
<Reference name="ode"/> <!-- Assemblies that are located in the output directory to which the file is built can be referenced --> <Reference name="ode"/> <!-- Assemblies that are located in the output directory to which the file is built can be referenced -->
<Reference name="RealmForge.Utility"/> <!-- When you reference the name of another project, then that project (and it's output) will be referenced instead of looking for a pre-built assembly--> <Reference name="RealmForge.Utility"/> <!-- When you reference the name of another project, then that project (and it's output) will be referenced instead of looking for a pre-built assembly-->
<Files> <Files>
<Match path="." pattern="*.cs" recurse="true"/> <Match path="." pattern="*.cs" recurse="true"/>
<Match path="." pattern="*.bmp" recurse="true" buildAction="EmbeddedResource"/> <Match path="." pattern="*.bmp" recurse="true" buildAction="EmbeddedResource"/>
<Match path="." pattern="[^a]*\.(png|jpg)" useRegex="true" buildAction="EmbeddedResource"/> <Match path="." pattern="[^a]*\.(png|jpg)" useRegex="true" buildAction="EmbeddedResource"/>
<!-- Uses a regex or regular expression to find all files that end with .png or .jpg but dont have the letter 'a' in their name and add them to the project as EmbeddedResource's. Because recurse enabled (default is false), only the values in the files in that are directly in the project directory (not child directories) are checked.--> <!-- Uses a regex or regular expression to find all files that end with .png or .jpg but dont have the letter 'a' in their name and add them to the project as EmbeddedResource's. Because recurse enabled (default is false), only the values in the files in that are directly in the project directory (not child directories) are checked.-->
<!--EmbeddedResource, Content, and Compile are valid buildAction's--> <!--EmbeddedResource, Content, and Compile are valid buildAction's-->
</Files> </Files>
</Project> </Project>
</Solution> </Solution>
</Prebuild> </Prebuild>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<Prebuild xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd" version="1.9"> <Prebuild xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd" version="1.9">
<Solution name="Prebuild" version="2.0.4"> <Solution name="Prebuild" version="2.0.5">
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>
<CompilerDefines>DEBUG;TRACE</CompilerDefines> <CompilerDefines>DEBUG;TRACE</CompilerDefines>
@ -31,13 +31,15 @@
type="Exe" type="Exe"
rootNamespace="Prebuild" rootNamespace="Prebuild"
startupObject="Prebuild.Prebuild" startupObject="Prebuild.Prebuild"
version="2.0.3" version="2.0.5"
frameworkVersion="v3_5"
> >
<Author>Matthew Holmes (matthew@wildfiregames.com)</Author> <Author>Matthew Holmes (matthew@wildfiregames.com)</Author>
<Author>Dan Moorehead (dan05a@gmail.com)</Author> <Author>Dan Moorehead (dan05a@gmail.com)</Author>
<Author>Dave Hudson (jendave@yahoo.com)</Author> <Author>Dave Hudson (jendave@yahoo.com)</Author>
<Author>Rob Loach (http://robloach.net)</Author> <Author>Rob Loach (http://robloach.net)</Author>
<Author>C.J. Adams-Collier (cjac@colliertech.org)</Author> <Author>C.J. Adams-Collier (cjac@colliertech.org)</Author>
<Author>John Hurliman (john.hurliman@intel.com)</Author>
<Description>The Prebuild project generator</Description> <Description>The Prebuild project generator</Description>
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>

View File

@ -1,4 +1,4 @@
@rem Generates a combine (.cmbx) and a set of project files (.prjx) @rem Generates a combine (.cmbx) and a set of project files (.prjx)
@rem for SharpDevelop (http://icsharpcode.net/OpenSource/SD/Default.aspx) @rem for SharpDevelop (http://icsharpcode.net/OpenSource/SD/Default.aspx)
cd .. cd ..
Prebuild.exe /target sharpdev2 /file prebuild.xml /pause Prebuild.exe /target sharpdev2 /file prebuild.xml /pause

View File

@ -1,4 +1,4 @@
@rem Generates a solution (.sln) and a set of project files (.csproj, .vbproj, etc.) @rem Generates a solution (.sln) and a set of project files (.csproj, .vbproj, etc.)
@rem for Microsoft Visual Studio .NET 2008 @rem for Microsoft Visual Studio .NET 2008
cd .. cd ..
Prebuild.exe /target vs2008 /file prebuild.xml /pause Prebuild.exe /target vs2008 /file prebuild.xml /pause

View File

@ -1,4 +1,4 @@
@rem Generates a solution (.sln) and a set of project files (.csproj, .vbproj, etc.) @rem Generates a solution (.sln) and a set of project files (.csproj, .vbproj, etc.)
@rem for Microsoft Visual Studio .NET 2010 @rem for Microsoft Visual Studio .NET 2010
cd .. cd ..
Prebuild.exe /target vs2010 /file prebuild.xml /pause Prebuild.exe /target vs2010 /file prebuild.xml /pause

View File

@ -1,4 +1,4 @@
@rem Generates Makefiles @rem Generates Makefiles
@rem for autotools @rem for autotools
cd .. cd ..
Prebuild.exe /target autotools /file prebuild.xml /pause Prebuild.exe /target autotools /file prebuild.xml /pause

View File

@ -1,80 +1,80 @@
#region BSD License #region BSD License
/* /*
Copyright (c) 2007 C.J. Adams-Collier (cjac@colliertech.org) Copyright (c) 2007 C.J. Adams-Collier (cjac@colliertech.org)
Redistribution and use in source and binary forms, with or without modification, are permitted Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions * Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer. and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions * 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 and the following disclaimer in the documentation and/or other materials provided with the
distribution. distribution.
* The name of the author may not be used to endorse or promote products derived from this software * The name of the author may not be used to endorse or promote products derived from this software
without specific prior written permission. without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 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 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, 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 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 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 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. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#endregion #endregion
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
using Prebuild.Core.Interfaces; using Prebuild.Core.Interfaces;
using Prebuild.Core.Utilities; using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes namespace Prebuild.Core.Nodes
{ {
[DataNode("CleanFiles")] [DataNode("CleanFiles")]
public class CleanFilesNode : DataNode public class CleanFilesNode : DataNode
{ {
#region Fields #region Fields
private string m_Pattern; private string m_Pattern;
#endregion #endregion
#region Properties #region Properties
/// <summary> /// <summary>
/// Gets the signature. /// Gets the signature.
/// </summary> /// </summary>
/// <value>The signature.</value> /// <value>The signature.</value>
public string Pattern public string Pattern
{ {
get get
{ {
return m_Pattern; return m_Pattern;
} }
} }
#endregion #endregion
#region Public Methods #region Public Methods
/// <summary> /// <summary>
/// Parses the specified node. /// Parses the specified node.
/// </summary> /// </summary>
/// <param name="node">The node.</param> /// <param name="node">The node.</param>
public override void Parse(XmlNode node) public override void Parse(XmlNode node)
{ {
if (node == null) if (node == null)
{ {
throw new ArgumentNullException("node"); throw new ArgumentNullException("node");
} }
m_Pattern = Helper.AttributeValue(node, "pattern", String.Empty); ; m_Pattern = Helper.AttributeValue(node, "pattern", String.Empty); ;
m_Pattern = m_Pattern.Trim(); m_Pattern = m_Pattern.Trim();
} }
#endregion #endregion
} }
} }

View File

@ -1,85 +1,85 @@
#region BSD License #region BSD License
/* /*
Copyright (c) 2007 C.J. Adams-Collier (cjac@colliertech.org) Copyright (c) 2007 C.J. Adams-Collier (cjac@colliertech.org)
Redistribution and use in source and binary forms, with or without modification, are permitted Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions * Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer. and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions * 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 and the following disclaimer in the documentation and/or other materials provided with the
distribution. distribution.
* The name of the author may not be used to endorse or promote products derived from this software * The name of the author may not be used to endorse or promote products derived from this software
without specific prior written permission. without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 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 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, 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 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 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 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. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#endregion #endregion
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
using Prebuild.Core.Interfaces; using Prebuild.Core.Interfaces;
namespace Prebuild.Core.Nodes namespace Prebuild.Core.Nodes
{ {
[DataNode("Cleanup")] [DataNode("Cleanup")]
public class CleanupNode : DataNode public class CleanupNode : DataNode
{ {
#region Fields #region Fields
private List<CleanFilesNode> m_CleanFiles = new List<CleanFilesNode>(); private List<CleanFilesNode> m_CleanFiles = new List<CleanFilesNode>();
#endregion #endregion
#region Properties #region Properties
/// <summary> /// <summary>
/// Gets the signature. /// Gets the signature.
/// </summary> /// </summary>
/// <value>The signature.</value> /// <value>The signature.</value>
public List<CleanFilesNode> CleanFiles public List<CleanFilesNode> CleanFiles
{ {
get get
{ {
return m_CleanFiles; return m_CleanFiles;
} }
} }
#endregion #endregion
#region Public Methods #region Public Methods
/// <summary> /// <summary>
/// Parses the specified node. /// Parses the specified node.
/// </summary> /// </summary>
/// <param name="node">The node.</param> /// <param name="node">The node.</param>
public override void Parse(XmlNode node) public override void Parse(XmlNode node)
{ {
if( node == null ) if( node == null )
{ {
throw new ArgumentNullException("node"); throw new ArgumentNullException("node");
} }
foreach (XmlNode child in node.ChildNodes) foreach (XmlNode child in node.ChildNodes)
{ {
IDataNode dataNode = Kernel.Instance.ParseNode(child, this); IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
if (dataNode is CleanFilesNode) if (dataNode is CleanFilesNode)
{ {
m_CleanFiles.Add((CleanFilesNode)dataNode); m_CleanFiles.Add((CleanFilesNode)dataNode);
} }
} }
} }
#endregion #endregion
} }
} }

View File

@ -1,71 +1,71 @@
#region BSD License #region BSD License
/* /*
Copyright (c) 2004-2005 Matthew Holmes (matthew@wildfiregames.com), Dan Moorehead (dan05a@gmail.com) 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 Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions * Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer. and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions * 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 and the following disclaimer in the documentation and/or other materials provided with the
distribution. distribution.
* The name of the author may not be used to endorse or promote products derived from this software * The name of the author may not be used to endorse or promote products derived from this software
without specific prior written permission. without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 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 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, 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 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 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 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. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#endregion #endregion
using System.Collections.Generic; using System.Collections.Generic;
namespace Prebuild.Core.Nodes namespace Prebuild.Core.Nodes
{ {
/// <summary> /// <summary>
/// Implements a specialized list of configuration nodes which allows for lookup via /// Implements a specialized list of configuration nodes which allows for lookup via
/// configuration name and platform. /// configuration name and platform.
/// </summary> /// </summary>
public class ConfigurationNodeCollection : List<ConfigurationNode> public class ConfigurationNodeCollection : List<ConfigurationNode>
{ {
#region Properties #region Properties
public ConfigurationNode this[string nameAndPlatform] public ConfigurationNode this[string nameAndPlatform]
{ {
get get
{ {
foreach (ConfigurationNode configurationNode in this) foreach (ConfigurationNode configurationNode in this)
{ {
if (configurationNode.NameAndPlatform == nameAndPlatform) if (configurationNode.NameAndPlatform == nameAndPlatform)
{ {
return configurationNode; return configurationNode;
} }
} }
return null; return null;
} }
set set
{ {
// See if the node // See if the node
ConfigurationNode configurationNode = this[nameAndPlatform]; ConfigurationNode configurationNode = this[nameAndPlatform];
if (configurationNode != null) if (configurationNode != null)
{ {
this[IndexOf(configurationNode)] = value; this[IndexOf(configurationNode)] = value;
} }
else else
{ {
Add(value); Add(value);
} }
} }
} }
#endregion #endregion
} }
} }

View File

@ -1,93 +1,93 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
using Prebuild.Core.Interfaces; using Prebuild.Core.Interfaces;
using Prebuild.Core.Utilities; using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes namespace Prebuild.Core.Nodes
{ {
[DataNode("DatabaseProject")] [DataNode("DatabaseProject")]
public class DatabaseProjectNode : DataNode public class DatabaseProjectNode : DataNode
{ {
string name; string name;
string path; string path;
string fullpath; string fullpath;
Guid guid = Guid.NewGuid(); Guid guid = Guid.NewGuid();
readonly List<AuthorNode> authors = new List<AuthorNode>(); readonly List<AuthorNode> authors = new List<AuthorNode>();
readonly List<DatabaseReferenceNode> references = new List<DatabaseReferenceNode>(); readonly List<DatabaseReferenceNode> references = new List<DatabaseReferenceNode>();
public Guid Guid public Guid Guid
{ {
get { return guid; } get { return guid; }
} }
public string Name public string Name
{ {
get { return name; } get { return name; }
} }
public string Path public string Path
{ {
get { return path; } get { return path; }
} }
public string FullPath public string FullPath
{ {
get { return fullpath; } get { return fullpath; }
} }
public IEnumerable<DatabaseReferenceNode> References public IEnumerable<DatabaseReferenceNode> References
{ {
get { return references; } get { return references; }
} }
public override void Parse(XmlNode node) public override void Parse(XmlNode node)
{ {
name = Helper.AttributeValue(node, "name", name); name = Helper.AttributeValue(node, "name", name);
path = Helper.AttributeValue(node, "path", name); path = Helper.AttributeValue(node, "path", name);
try try
{ {
fullpath = Helper.ResolvePath(path); fullpath = Helper.ResolvePath(path);
} }
catch catch
{ {
throw new WarningException("Could not resolve Solution path: {0}", path); throw new WarningException("Could not resolve Solution path: {0}", path);
} }
Kernel.Instance.CurrentWorkingDirectory.Push(); Kernel.Instance.CurrentWorkingDirectory.Push();
try try
{ {
Helper.SetCurrentDir(fullpath); Helper.SetCurrentDir(fullpath);
if (node == null) if (node == null)
{ {
throw new ArgumentNullException("node"); throw new ArgumentNullException("node");
} }
foreach (XmlNode child in node.ChildNodes) foreach (XmlNode child in node.ChildNodes)
{ {
IDataNode dataNode = Kernel.Instance.ParseNode(child, this); IDataNode dataNode = Kernel.Instance.ParseNode(child, this);
if (dataNode == null) if (dataNode == null)
continue; continue;
if (dataNode is AuthorNode) if (dataNode is AuthorNode)
authors.Add((AuthorNode)dataNode); authors.Add((AuthorNode)dataNode);
else if (dataNode is DatabaseReferenceNode) else if (dataNode is DatabaseReferenceNode)
references.Add((DatabaseReferenceNode)dataNode); references.Add((DatabaseReferenceNode)dataNode);
} }
} }
finally finally
{ {
Kernel.Instance.CurrentWorkingDirectory.Pop(); Kernel.Instance.CurrentWorkingDirectory.Pop();
} }
base.Parse(node); base.Parse(node);
} }
} }
} }

View File

@ -1,63 +1,63 @@
using System; using System;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
using Prebuild.Core.Utilities; using Prebuild.Core.Utilities;
namespace Prebuild.Core.Nodes namespace Prebuild.Core.Nodes
{ {
[DataNode("DatabaseReference")] [DataNode("DatabaseReference")]
public class DatabaseReferenceNode : DataNode public class DatabaseReferenceNode : DataNode
{ {
string name; string name;
Guid providerId; Guid providerId;
string connectionString; string connectionString;
public string Name public string Name
{ {
get { return name; } get { return name; }
} }
public Guid ProviderId public Guid ProviderId
{ {
get { return providerId; } get { return providerId; }
} }
public string ConnectionString public string ConnectionString
{ {
get { return connectionString; } get { return connectionString; }
} }
public override void Parse(System.Xml.XmlNode node) public override void Parse(System.Xml.XmlNode node)
{ {
name = Helper.AttributeValue(node, "name", name); name = Helper.AttributeValue(node, "name", name);
string providerName = Helper.AttributeValue(node, "providerName", string.Empty); string providerName = Helper.AttributeValue(node, "providerName", string.Empty);
if (providerName != null) if (providerName != null)
{ {
switch (providerName) switch (providerName)
{ {
// digitaljeebus: pulled from HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\* // digitaljeebus: pulled from HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\*
// Not sure if these will help other operating systems, or if there's a better way. // Not sure if these will help other operating systems, or if there's a better way.
case "Microsoft.SqlServerCe.Client.3.5": case "Microsoft.SqlServerCe.Client.3.5":
providerId = new Guid("7C602B5B-ACCB-4acd-9DC0-CA66388C1533"); break; providerId = new Guid("7C602B5B-ACCB-4acd-9DC0-CA66388C1533"); break;
case "System.Data.OleDb": case "System.Data.OleDb":
providerId = new Guid("7F041D59-D76A-44ed-9AA2-FBF6B0548B80"); break; providerId = new Guid("7F041D59-D76A-44ed-9AA2-FBF6B0548B80"); break;
case "System.Data.OracleClient": case "System.Data.OracleClient":
providerId = new Guid("8F5C5018-AE09-42cf-B2CC-2CCCC7CFC2BB"); break; 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; providerId = new Guid("91510608-8809-4020-8897-FBA057E22D54"); break;
case "System.Data.Odbc": case "System.Data.Odbc":
providerId = new Guid("C3D4F4CE-2C48-4381-B4D6-34FA50C51C86"); break; providerId = new Guid("C3D4F4CE-2C48-4381-B4D6-34FA50C51C86"); break;
default: default:
throw new ArgumentOutOfRangeException("providerName", providerName, "Could not provider name to an id."); throw new ArgumentOutOfRangeException("providerName", providerName, "Could not provider name to an id.");
} }
} }
else else
providerId = new Guid(Helper.AttributeValue(node, "providerId", Guid.Empty.ToString("B"))); providerId = new Guid(Helper.AttributeValue(node, "providerId", Guid.Empty.ToString("B")));
connectionString = Helper.AttributeValue(node, "connectionString", connectionString); connectionString = Helper.AttributeValue(node, "connectionString", connectionString);
base.Parse(node); base.Parse(node);
} }
} }
} }

View File

@ -62,7 +62,11 @@ namespace Prebuild.Core.Nodes
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
Page Page,
/// <summary>
///
/// </summary>
Copy
} }
/// <summary> /// <summary>
@ -245,6 +249,9 @@ namespace Prebuild.Core.Nodes
if (subType != String.Empty) if (subType != String.Empty)
m_SubType = (SubType)Enum.Parse(typeof(SubType), subType); m_SubType = (SubType)Enum.Parse(typeof(SubType), subType);
Console.WriteLine("[FileNode]:BuildAction is {0}", buildAction);
m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName.ToString()); m_ResourceName = Helper.AttributeValue(node, "resourceName", m_ResourceName.ToString());
this.m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString)); this.m_Link = bool.Parse(Helper.AttributeValue(node, "link", bool.FalseString));
if ( this.m_Link == true ) if ( this.m_Link == true )

View File

@ -25,6 +25,7 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Specialized;
using System.Xml; using System.Xml;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
@ -49,6 +50,8 @@ namespace Prebuild.Core.Nodes
private readonly Dictionary<string, bool> m_Links = new Dictionary<string, bool>(); private readonly Dictionary<string, bool> m_Links = new Dictionary<string, bool>();
private readonly Dictionary<string, string> m_LinkPaths = new Dictionary<string, string>(); private readonly Dictionary<string, string> m_LinkPaths = new Dictionary<string, string>();
private readonly Dictionary<string, bool> m_PreservePaths = new Dictionary<string, bool>(); private readonly Dictionary<string, bool> m_PreservePaths = new Dictionary<string, bool>();
private readonly Dictionary<string, string> m_DestinationPath = new Dictionary<string, string>();
private readonly NameValueCollection m_CopyFiles = new NameValueCollection();
#endregion #endregion
@ -62,6 +65,16 @@ namespace Prebuild.Core.Nodes
} }
} }
public string[] Destinations
{
get { return m_CopyFiles.AllKeys; }
}
public int CopyFiles
{
get { return m_CopyFiles.Count; }
}
#endregion #endregion
#region Public Methods #region Public Methods
@ -76,6 +89,20 @@ namespace Prebuild.Core.Nodes
return m_BuildActions[file]; return m_BuildActions[file];
} }
public string GetDestinationPath(string file)
{
if( !m_DestinationPath.ContainsKey(file))
{
return null;
}
return m_DestinationPath[file];
}
public string[] SourceFiles(string dest)
{
return m_CopyFiles.GetValues(dest);
}
public CopyToOutput GetCopyToOutput(string file) public CopyToOutput GetCopyToOutput(string file)
{ {
if (!m_CopyToOutputs.ContainsKey(file)) if (!m_CopyToOutputs.ContainsKey(file))
@ -178,6 +205,13 @@ namespace Prebuild.Core.Nodes
m_BuildActions[file] = GetBuildActionByFileName(file); m_BuildActions[file] = GetBuildActionByFileName(file);
else else
m_BuildActions[file] = matchNode.BuildAction.Value; m_BuildActions[file] = matchNode.BuildAction.Value;
if (matchNode.BuildAction == BuildAction.Copy)
{
m_CopyFiles.Add(matchNode.DestinationPath, file);
m_DestinationPath[file] = matchNode.DestinationPath;
}
m_SubTypes[file] = matchNode.SubType == null ? GetSubTypeByFileName(file) : matchNode.SubType.Value; m_SubTypes[file] = matchNode.SubType == null ? GetSubTypeByFileName(file) : matchNode.SubType.Value;
m_ResourceNames[ file ] = matchNode.ResourceName; m_ResourceNames[ file ] = matchNode.ResourceName;
m_PreservePaths[ file ] = matchNode.PreservePath; m_PreservePaths[ file ] = matchNode.PreservePath;

View File

@ -52,6 +52,7 @@ namespace Prebuild.Core.Nodes
private bool m_Link; private bool m_Link;
private string m_LinkPath; private string m_LinkPath;
private bool m_PreservePath; private bool m_PreservePath;
private string m_Destination = "";
private readonly List<ExcludeNode> m_Exclusions = new List<ExcludeNode>(); private readonly List<ExcludeNode> m_Exclusions = new List<ExcludeNode>();
#endregion #endregion
@ -80,6 +81,13 @@ namespace Prebuild.Core.Nodes
} }
} }
public string DestinationPath
{
get
{
return m_Destination;
}
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -285,12 +293,14 @@ namespace Prebuild.Core.Nodes
} }
string path = Helper.AttributeValue(node, "path", "."); string path = Helper.AttributeValue(node, "path", ".");
string pattern = Helper.AttributeValue(node, "pattern", "*"); 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 recurse = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "recurse", "false"));
bool useRegex = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "useRegex", "false")); bool useRegex = (bool)Helper.TranslateValue(typeof(bool), Helper.AttributeValue(node, "useRegex", "false"));
string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty); string buildAction = Helper.AttributeValue(node, "buildAction", String.Empty);
if (buildAction != string.Empty) if (buildAction != string.Empty)
m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction); m_BuildAction = (BuildAction)Enum.Parse(typeof(BuildAction), buildAction);
//TODO: Figure out where the subtype node is being assigned //TODO: Figure out where the subtype node is being assigned
//string subType = Helper.AttributeValue(node, "subType", string.Empty); //string subType = Helper.AttributeValue(node, "subType", string.Empty);
//if (subType != String.Empty) //if (subType != String.Empty)
@ -304,11 +314,12 @@ namespace Prebuild.Core.Nodes
} }
m_PreservePath = bool.Parse( Helper.AttributeValue( node, "preservePath", bool.FalseString ) ); m_PreservePath = bool.Parse( Helper.AttributeValue( node, "preservePath", bool.FalseString ) );
if ( buildAction == "Copy")
m_Destination = destination;
if(path != null && path.Length == 0) if(path != null && path.Length == 0)
{
path = ".";//use current directory path = ".";//use current directory
}
//throw new WarningException("Match must have a 'path' attribute"); //throw new WarningException("Match must have a 'path' attribute");
if(pattern == null) if(pattern == null)

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
/* /*
* $Source$ * $Source$
* $Author: jendave $ * $Author: jendave $
* $Date: 2006-09-20 08:42:51 +0100 (Wed, 20 Sep 2006) $ * $Date: 2006-09-20 03:42:51 -0400 (Wed, 20 Sep 2006) $
* $Revision: 164 $ * $Revision: 164 $
*/ */
#endregion #endregion

View File

@ -1,138 +1,138 @@
using System; using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
using Prebuild.Core.Attributes; using Prebuild.Core.Attributes;
using Prebuild.Core.Interfaces; using Prebuild.Core.Interfaces;
using Prebuild.Core.Nodes; using Prebuild.Core.Nodes;
using Prebuild.Core.Utilities; using Prebuild.Core.Utilities;
using System.CodeDom.Compiler; using System.CodeDom.Compiler;
namespace Prebuild.Core.Targets namespace Prebuild.Core.Targets
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Target("vs2010")] [Target("vs2010")]
public class VS2010Target : VSGenericTarget public class VS2010Target : VSGenericTarget
{ {
#region Fields #region Fields
string solutionVersion = "11.00"; string solutionVersion = "11.00";
string productVersion = "9.0.30729"; string productVersion = "9.0.30729";
string schemaVersion = "2.0"; string schemaVersion = "2.0";
string versionName = "Visual Studio 2010"; string versionName = "Visual Studio 2010";
string name = "vs2010"; string name = "vs2010";
VSVersion version = VSVersion.VS10; VSVersion version = VSVersion.VS10;
#endregion #endregion
#region Properties #region Properties
/// <summary> /// <summary>
/// Gets or sets the solution version. /// Gets or sets the solution version.
/// </summary> /// </summary>
/// <value>The solution version.</value> /// <value>The solution version.</value>
public override string SolutionVersion public override string SolutionVersion
{ {
get get
{ {
return solutionVersion; return solutionVersion;
} }
} }
/// <summary> /// <summary>
/// Gets or sets the product version. /// Gets or sets the product version.
/// </summary> /// </summary>
/// <value>The product version.</value> /// <value>The product version.</value>
public override string ProductVersion public override string ProductVersion
{ {
get get
{ {
return productVersion; return productVersion;
} }
} }
/// <summary> /// <summary>
/// Gets or sets the schema version. /// Gets or sets the schema version.
/// </summary> /// </summary>
/// <value>The schema version.</value> /// <value>The schema version.</value>
public override string SchemaVersion public override string SchemaVersion
{ {
get get
{ {
return schemaVersion; return schemaVersion;
} }
} }
/// <summary> /// <summary>
/// Gets or sets the name of the version. /// Gets or sets the name of the version.
/// </summary> /// </summary>
/// <value>The name of the version.</value> /// <value>The name of the version.</value>
public override string VersionName public override string VersionName
{ {
get get
{ {
return versionName; return versionName;
} }
} }
/// <summary> /// <summary>
/// Gets or sets the version. /// Gets or sets the version.
/// </summary> /// </summary>
/// <value>The version.</value> /// <value>The version.</value>
public override VSVersion Version public override VSVersion Version
{ {
get get
{ {
return version; return version;
} }
} }
/// <summary> /// <summary>
/// Gets the name. /// Gets the name.
/// </summary> /// </summary>
/// <value>The name.</value> /// <value>The name.</value>
public override string Name public override string Name
{ {
get get
{ {
return name; return name;
} }
} }
protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion) protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
{ {
switch (frameworkVersion) switch (frameworkVersion)
{ {
case FrameworkVersion.v4_0: case FrameworkVersion.v4_0:
case FrameworkVersion.v3_5: case FrameworkVersion.v3_5:
return "ToolsVersion=\"4.0\""; return "ToolsVersion=\"4.0\"";
case FrameworkVersion.v3_0: case FrameworkVersion.v3_0:
return "ToolsVersion=\"3.0\""; return "ToolsVersion=\"3.0\"";
default: default:
return "ToolsVersion=\"2.0\""; return "ToolsVersion=\"2.0\"";
} }
} }
public override string SolutionTag public override string SolutionTag
{ {
get { return "# Visual Studio 2010"; } get { return "# Visual Studio 2010"; }
} }
#endregion #endregion
#region Constructors #region Constructors
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="VS2005Target"/> class. /// Initializes a new instance of the <see cref="VS2005Target"/> class.
/// </summary> /// </summary>
public VS2010Target() public VS2010Target()
: base() : base()
{ {
} }
#endregion #endregion
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
/* /*
* $Source$ * $Source$
* $Author: kunnis $ * $Author: kunnis $
* $Date: 2009-04-15 02:33:14 +0100 (Wed, 15 Apr 2009) $ * $Date: 2009-04-14 21:33:14 -0400 (Tue, 14 Apr 2009) $
* $Revision: 308 $ * $Revision: 308 $
*/ */
#endregion #endregion

View File

@ -1,350 +1,350 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd"> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.7.xsd">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Copyright (c) 2004-2007 Copyright (c) 2004-2007
Matthew Holmes (calefaction at houston . rr . com), Matthew Holmes (calefaction at houston . rr . com),
Dan Moorehead (dan05a at gmail . com), Dan Moorehead (dan05a at gmail . com),
David Hudson (jendave at yahoo dot com), David Hudson (jendave at yahoo dot com),
C.J. Adams-Collier (cjac at colliertech dot com) C.J. Adams-Collier (cjac at colliertech dot com)
.NET Prebuild is a cross-platform XML-driven pre-build tool which .NET Prebuild is a cross-platform XML-driven pre-build tool which
allows developers to easily generate project or make files for major allows developers to easily generate project or make files for major
IDE's and .NET development tools including: Visual Studio .NET 2002, IDE's and .NET development tools including: Visual Studio .NET 2002,
2003, and 2005, SharpDevelop, MonoDevelop, NAnt, Xcode and the GNU Autotools. 2003, and 2005, SharpDevelop, MonoDevelop, NAnt, Xcode and the GNU Autotools.
BSD License: BSD License:
Redistribution and use in source and binary forms, with or without modification, are permitted Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions * Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer. and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions * 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 and the following disclaimer in the documentation and/or other materials provided with the
distribution. distribution.
* The name of the author may not be used to endorse or promote products derived from this software * The name of the author may not be used to endorse or promote products derived from this software
without specific prior written permission. without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 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 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, 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 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 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 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. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:element name="Prebuild"> <xs:element name="Prebuild">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Solution" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="Solution" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="version" /> <xs:attribute name="version" />
<xs:attribute name="checkOsVars" /> <xs:attribute name="checkOsVars" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Process" type="xs:string" /> <xs:element name="Process" type="xs:string" />
<xs:element name="Solution"> <xs:element name="Solution">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Options" minOccurs="0" /> <xs:element ref="Options" minOccurs="0" />
<xs:element ref="Files" minOccurs="0" /> <xs:element ref="Files" minOccurs="0" />
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Cleanup" minOccurs="0" maxOccurs="1" /> <xs:element ref="Cleanup" minOccurs="0" maxOccurs="1" />
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="activeConfig" type="xs:string" default="Debug" /> <xs:attribute name="activeConfig" type="xs:string" default="Debug" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="EmbeddedSolution"> <xs:element name="EmbeddedSolution">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Files" minOccurs="0" /> <xs:element ref="Files" minOccurs="0" />
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="activeConfig" type="xs:string" default="Debug" /> <xs:attribute name="activeConfig" type="xs:string" default="Debug" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="DatabaseProject"> <xs:element name="DatabaseProject">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DatabaseReference" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseReference" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="DatabaseReference"> <xs:element name="DatabaseReference">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="providerId" type="xs:string" /> <xs:attribute name="providerId" type="xs:string" />
<xs:attribute name="providerName" type="xs:string" /> <xs:attribute name="providerName" type="xs:string" />
<xs:attribute name="connectionString" type="xs:string" use="required" /> <xs:attribute name="connectionString" type="xs:string" use="required" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Project"> <xs:element name="Project">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
<xs:element name="ReferencePath" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="ReferencePath" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Reference" minOccurs="0" maxOccurs="unbounded"> <xs:element name="Reference" minOccurs="0" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
<xs:attribute name="localCopy" type="xs:boolean" /> <xs:attribute name="localCopy" type="xs:boolean" />
<xs:attribute name="version" type="xs:string" /> <xs:attribute name="version" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element ref="Files" /> <xs:element ref="Files" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="designerFolder" type="xs:string" default="" /> <xs:attribute name="designerFolder" type="xs:string" default="" />
<xs:attribute name="filterGroups" type="xs:string" default="" /> <xs:attribute name="filterGroups" type="xs:string" default="" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="icon" type="xs:string" default="" /> <xs:attribute name="icon" type="xs:string" default="" />
<xs:attribute name="configFile" type="xs:string" default="" /> <xs:attribute name="configFile" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
<xs:attribute name="guid" type="xs:string"/> <xs:attribute name="guid" type="xs:string"/>
<xs:attribute name="language" default="C#"> <xs:attribute name="language" default="C#">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="C#" /> <xs:enumeration value="C#" />
<xs:enumeration value="VB.NET" /> <xs:enumeration value="VB.NET" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="type" default="Exe"> <xs:attribute name="type" default="Exe">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Exe" /> <xs:enumeration value="Exe" />
<xs:enumeration value="WinExe" /> <xs:enumeration value="WinExe" />
<xs:enumeration value="Library" /> <xs:enumeration value="Library" />
<xs:enumeration value="Web" /> <xs:enumeration value="Web" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="runtime" default="Microsoft"> <xs:attribute name="runtime" default="Microsoft">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Microsoft" /> <xs:enumeration value="Microsoft" />
<xs:enumeration value="Mono" /> <xs:enumeration value="Mono" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="frameworkVersion" default="v2_0"> <xs:attribute name="frameworkVersion" default="v2_0">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="v2_0" /> <xs:enumeration value="v2_0" />
<xs:enumeration value="v3_0" /> <xs:enumeration value="v3_0" />
<xs:enumeration value="v3_5" /> <xs:enumeration value="v3_5" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="startupObject" type="xs:string" default="" /> <xs:attribute name="startupObject" type="xs:string" default="" />
<xs:attribute name="rootNamespace" type="xs:string" /> <xs:attribute name="rootNamespace" type="xs:string" />
<xs:attribute name="debugStartParameters" type="xs:string" /> <xs:attribute name="debugStartParameters" type="xs:string" />
<xs:attribute name="assemblyName" type="xs:string" /> <xs:attribute name="assemblyName" type="xs:string" />
<xs:attribute name="generateAssemblyInfoFile" type="xs:boolean" default="false" /> <xs:attribute name="generateAssemblyInfoFile" type="xs:boolean" default="false" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Configuration"> <xs:element name="Configuration">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Options" minOccurs="0" /> <xs:element ref="Options" minOccurs="0" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Options"> <xs:element name="Options">
<xs:complexType> <xs:complexType>
<xs:all> <xs:all>
<xs:element name="CompilerDefines" type="xs:string" minOccurs="0" /> <xs:element name="CompilerDefines" type="xs:string" minOccurs="0" />
<xs:element name="OptimizeCode" type="xs:boolean" minOccurs="0" /> <xs:element name="OptimizeCode" type="xs:boolean" minOccurs="0" />
<xs:element name="CheckUnderflowOverflow" type="xs:boolean" minOccurs="0" /> <xs:element name="CheckUnderflowOverflow" type="xs:boolean" minOccurs="0" />
<xs:element name="AllowUnsafe" type="xs:boolean" minOccurs="0" /> <xs:element name="AllowUnsafe" type="xs:boolean" minOccurs="0" />
<xs:element name="PreBuildEvent" type="xs:string" minOccurs="0" /> <xs:element name="PreBuildEvent" type="xs:string" minOccurs="0" />
<xs:element name="PostBuildEvent" type="xs:string" minOccurs="0" /> <xs:element name="PostBuildEvent" type="xs:string" minOccurs="0" />
<xs:element name="RunPostBuildEvent" minOccurs="0" default="OnBuildSuccess"> <xs:element name="RunPostBuildEvent" minOccurs="0" default="OnBuildSuccess">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="OnBuildSuccess" /> <xs:enumeration value="OnBuildSuccess" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="OnOutputUpdated" /> <xs:enumeration value="OnOutputUpdated" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="RunScript" type="xs:string" minOccurs="0" /> <xs:element name="RunScript" type="xs:string" minOccurs="0" />
<xs:element name="PreBuildEventArgs" type="xs:string" minOccurs="0" /> <xs:element name="PreBuildEventArgs" type="xs:string" minOccurs="0" />
<xs:element name="PostBuildEventArgs" type="xs:string" minOccurs="0" /> <xs:element name="PostBuildEventArgs" type="xs:string" minOccurs="0" />
<xs:element name="WarningLevel" minOccurs="0"> <xs:element name="WarningLevel" minOccurs="0">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:integer"> <xs:restriction base="xs:integer">
<xs:minInclusive value="0" /> <xs:minInclusive value="0" />
<xs:maxInclusive value="4" /> <xs:maxInclusive value="4" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="WarningsAsErrors" type="xs:boolean" minOccurs="0" /> <xs:element name="WarningsAsErrors" type="xs:boolean" minOccurs="0" />
<xs:element name="SuppressWarnings" type="xs:string" minOccurs="0" /> <xs:element name="SuppressWarnings" type="xs:string" minOccurs="0" />
<xs:element name="OutputPath" type="xs:string" minOccurs="0" /> <xs:element name="OutputPath" type="xs:string" minOccurs="0" />
<xs:element name="GenerateDocumentation" type="xs:boolean" minOccurs="0" /> <xs:element name="GenerateDocumentation" type="xs:boolean" minOccurs="0" />
<xs:element name="XmlDocFile" type="xs:string" minOccurs="0" /> <xs:element name="XmlDocFile" type="xs:string" minOccurs="0" />
<xs:element name="DebugInformation" type="xs:boolean" minOccurs="0" /> <xs:element name="DebugInformation" type="xs:boolean" minOccurs="0" />
<xs:element name="RegisterComInterop" type="xs:boolean" minOccurs="0" /> <xs:element name="RegisterComInterop" type="xs:boolean" minOccurs="0" />
<xs:element name="RemoveIntegerChecks" type="xs:boolean" minOccurs="0" /> <xs:element name="RemoveIntegerChecks" type="xs:boolean" minOccurs="0" />
<xs:element name="IncrementalBuild" type="xs:boolean" minOccurs="0" /> <xs:element name="IncrementalBuild" type="xs:boolean" minOccurs="0" />
<xs:element name="BaseAddress" type="xs:string" minOccurs="0" /> <xs:element name="BaseAddress" type="xs:string" minOccurs="0" />
<xs:element name="FileAlignment" type="xs:integer" minOccurs="0" /> <xs:element name="FileAlignment" type="xs:integer" minOccurs="0" />
<xs:element name="NoStdLib" type="xs:boolean" minOccurs="0" /> <xs:element name="NoStdLib" type="xs:boolean" minOccurs="0" />
<xs:element name="KeyFile" type="xs:string" minOccurs="0" /> <xs:element name="KeyFile" type="xs:string" minOccurs="0" />
</xs:all> </xs:all>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Files"> <xs:element name="Files">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="File" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="File" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Match" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Match" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="File"> <xs:element name="File">
<xs:complexType> <xs:complexType>
<xs:simpleContent> <xs:simpleContent>
<xs:extension base="xs:string"> <xs:extension base="xs:string">
<xs:attribute name="resourceName" type="xs:string" default="" /> <xs:attribute name="resourceName" type="xs:string" default="" />
<xs:attribute name="buildAction" default="Compile"> <xs:attribute name="buildAction" default="Compile">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="None" /> <xs:enumeration value="None" />
<xs:enumeration value="Compile" /> <xs:enumeration value="Compile" />
<xs:enumeration value="Content" /> <xs:enumeration value="Content" />
<xs:enumeration value="EmbeddedResource" /> <xs:enumeration value="EmbeddedResource" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="subType" default="Code"> <xs:attribute name="subType" default="Code">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Code" /> <xs:enumeration value="Code" />
<xs:enumeration value="CodeBehind" /> <xs:enumeration value="CodeBehind" />
<xs:enumeration value="Component" /> <xs:enumeration value="Component" />
<xs:enumeration value="Form" /> <xs:enumeration value="Form" />
<xs:enumeration value="Settings" /> <xs:enumeration value="Settings" />
<xs:enumeration value="UserControl" /> <xs:enumeration value="UserControl" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="link" type="xs:boolean" /> <xs:attribute name="link" type="xs:boolean" />
<xs:attribute name="copyToOutput" default="Never"> <xs:attribute name="copyToOutput" default="Never">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Never" /> <xs:enumeration value="Never" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="PreserveNewest" /> <xs:enumeration value="PreserveNewest" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="preservePath" type="xs:boolean" /> <xs:attribute name="preservePath" type="xs:boolean" />
<xs:attribute name="linkPath" type="xs:string" /> <xs:attribute name="linkPath" type="xs:string" />
</xs:extension> </xs:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Match"> <xs:element name="Match">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Exclude" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Exclude" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
<xs:attribute name="pattern" type="xs:string" use="required" /> <xs:attribute name="pattern" type="xs:string" use="required" />
<xs:attribute name="recurse" type="xs:boolean" default="false" /> <xs:attribute name="recurse" type="xs:boolean" default="false" />
<xs:attribute name="useRegex" type="xs:boolean" default="false" /> <xs:attribute name="useRegex" type="xs:boolean" default="false" />
<xs:attribute name="buildAction" default="Compile"> <xs:attribute name="buildAction" default="Compile">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="None" /> <xs:enumeration value="None" />
<xs:enumeration value="Compile" /> <xs:enumeration value="Compile" />
<xs:enumeration value="Content" /> <xs:enumeration value="Content" />
<xs:enumeration value="EmbeddedResource" /> <xs:enumeration value="EmbeddedResource" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="resourceName" type="xs:string" default="" /> <xs:attribute name="resourceName" type="xs:string" default="" />
<xs:attribute name="subType" default="Code"> <xs:attribute name="subType" default="Code">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Code" /> <xs:enumeration value="Code" />
<xs:enumeration value="CodeBehind" /> <xs:enumeration value="CodeBehind" />
<xs:enumeration value="Component" /> <xs:enumeration value="Component" />
<xs:enumeration value="Designer" /> <xs:enumeration value="Designer" />
<xs:enumeration value="Form" /> <xs:enumeration value="Form" />
<xs:enumeration value="Settings" /> <xs:enumeration value="Settings" />
<xs:enumeration value="UserControl" /> <xs:enumeration value="UserControl" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="link" type="xs:boolean" /> <xs:attribute name="link" type="xs:boolean" />
<xs:attribute name="copyToOutput" default="Never"> <xs:attribute name="copyToOutput" default="Never">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Never" /> <xs:enumeration value="Never" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="PreserveNewest" /> <xs:enumeration value="PreserveNewest" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="preservePath" type="xs:boolean" /> <xs:attribute name="preservePath" type="xs:boolean" />
<xs:attribute name="linkPath" type="xs:string" /> <xs:attribute name="linkPath" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Exclude"> <xs:element name="Exclude">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" /> <xs:attribute name="name" type="xs:string" />
<xs:attribute name="pattern" type="xs:string" /> <xs:attribute name="pattern" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Cleanup"> <xs:element name="Cleanup">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="CleanFiles" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="CleanFiles" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="CleanFiles"> <xs:element name="CleanFiles">
<xs:complexType> <xs:complexType>
<xs:attribute name="pattern" type="xs:string" /> <xs:attribute name="pattern" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:schema> </xs:schema>

View File

@ -1,336 +1,336 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd"> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.9.xsd">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Copyright (c) 2004-2007 Copyright (c) 2004-2007
Matthew Holmes (calefaction at houston . rr . com), Matthew Holmes (calefaction at houston . rr . com),
Dan Moorehead (dan05a at gmail . com), Dan Moorehead (dan05a at gmail . com),
David Hudson (jendave at yahoo dot com), David Hudson (jendave at yahoo dot com),
C.J. Adams-Collier (cjac at colliertech dot com) C.J. Adams-Collier (cjac at colliertech dot com)
.NET Prebuild is a cross-platform XML-driven pre-build tool which .NET Prebuild is a cross-platform XML-driven pre-build tool which
allows developers to easily generate project or make files for major allows developers to easily generate project or make files for major
IDE's and .NET development tools including: Visual Studio .NET 2002, IDE's and .NET development tools including: Visual Studio .NET 2002,
2003, and 2005, SharpDevelop, MonoDevelop, NAnt, Xcode and the GNU Autotools. 2003, and 2005, SharpDevelop, MonoDevelop, NAnt, Xcode and the GNU Autotools.
BSD License: BSD License:
Redistribution and use in source and binary forms, with or without modification, are permitted Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions * Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer. and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions * 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 and the following disclaimer in the documentation and/or other materials provided with the
distribution. distribution.
* The name of the author may not be used to endorse or promote products derived from this software * The name of the author may not be used to endorse or promote products derived from this software
without specific prior written permission. without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 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 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, 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 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 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 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. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:element name="Prebuild"> <xs:element name="Prebuild">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Solution" minOccurs="1" maxOccurs="1" /> <xs:element ref="Solution" minOccurs="1" maxOccurs="1" />
</xs:sequence> </xs:sequence>
<xs:attribute name="version" /> <xs:attribute name="version" />
<xs:attribute name="checkOsVars" /> <xs:attribute name="checkOsVars" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Process" type="xs:string" /> <xs:element name="Process" type="xs:string" />
<xs:element name="Solution"> <xs:element name="Solution">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Options" minOccurs="0" /> <xs:element ref="Options" minOccurs="0" />
<xs:element ref="Files" minOccurs="0" /> <xs:element ref="Files" minOccurs="0" />
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="activeConfig" type="xs:string" default="Debug" /> <xs:attribute name="activeConfig" type="xs:string" default="Debug" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="EmbeddedSolution"> <xs:element name="EmbeddedSolution">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Files" minOccurs="0" /> <xs:element ref="Files" minOccurs="0" />
<xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Project" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseProject" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="EmbeddedSolution" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="activeConfig" type="xs:string" default="Debug" /> <xs:attribute name="activeConfig" type="xs:string" default="Debug" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="DatabaseProject"> <xs:element name="DatabaseProject">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DatabaseReference" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="DatabaseReference" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="DatabaseReference"> <xs:element name="DatabaseReference">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="providerId" type="xs:string" /> <xs:attribute name="providerId" type="xs:string" />
<xs:attribute name="providerName" type="xs:string" /> <xs:attribute name="providerName" type="xs:string" />
<xs:attribute name="connectionString" type="xs:string" use="required" /> <xs:attribute name="connectionString" type="xs:string" use="required" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Project"> <xs:element name="Project">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" /> <xs:element ref="Configuration" minOccurs="1" maxOccurs="unbounded" />
<xs:element name="ReferencePath" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="ReferencePath" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Reference" minOccurs="0" maxOccurs="unbounded"> <xs:element name="Reference" minOccurs="0" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
<xs:attribute name="localCopy" type="xs:boolean" /> <xs:attribute name="localCopy" type="xs:boolean" />
<xs:attribute name="version" type="xs:string" /> <xs:attribute name="version" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element ref="Files" /> <xs:element ref="Files" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="designerFolder" type="xs:string" default="" /> <xs:attribute name="designerFolder" type="xs:string" default="" />
<xs:attribute name="filterGroups" type="xs:string" default="" /> <xs:attribute name="filterGroups" type="xs:string" default="" />
<xs:attribute name="path" type="xs:string" default="" /> <xs:attribute name="path" type="xs:string" default="" />
<xs:attribute name="icon" type="xs:string" default="" /> <xs:attribute name="icon" type="xs:string" default="" />
<xs:attribute name="configFile" type="xs:string" default="" /> <xs:attribute name="configFile" type="xs:string" default="" />
<xs:attribute name="version" type="xs:string" default="1.0.0" /> <xs:attribute name="version" type="xs:string" default="1.0.0" />
<xs:attribute name="guid" type="xs:string"/> <xs:attribute name="guid" type="xs:string"/>
<xs:attribute name="language" default="C#"> <xs:attribute name="language" default="C#">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="C#" /> <xs:enumeration value="C#" />
<xs:enumeration value="VB.NET" /> <xs:enumeration value="VB.NET" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="type" default="Exe"> <xs:attribute name="type" default="Exe">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Exe" /> <xs:enumeration value="Exe" />
<xs:enumeration value="WinExe" /> <xs:enumeration value="WinExe" />
<xs:enumeration value="Library" /> <xs:enumeration value="Library" />
<xs:enumeration value="Web" /> <xs:enumeration value="Web" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="runtime" default="Microsoft"> <xs:attribute name="runtime" default="Microsoft">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Microsoft" /> <xs:enumeration value="Microsoft" />
<xs:enumeration value="Mono" /> <xs:enumeration value="Mono" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="frameworkVersion" default="v2_0"> <xs:attribute name="frameworkVersion" default="v2_0">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="v2_0" /> <xs:enumeration value="v2_0" />
<xs:enumeration value="v3_0" /> <xs:enumeration value="v3_0" />
<xs:enumeration value="v3_5" /> <xs:enumeration value="v3_5" />
<xs:enumeration value="v4_0" /> <xs:enumeration value="v4_0" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="startupObject" type="xs:string" default="" /> <xs:attribute name="startupObject" type="xs:string" default="" />
<xs:attribute name="rootNamespace" type="xs:string" /> <xs:attribute name="rootNamespace" type="xs:string" />
<xs:attribute name="assemblyName" type="xs:string" /> <xs:attribute name="assemblyName" type="xs:string" />
<xs:attribute name="generateAssemblyInfoFile" type="xs:boolean" default="false" /> <xs:attribute name="generateAssemblyInfoFile" type="xs:boolean" default="false" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Configuration"> <xs:element name="Configuration">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Options" minOccurs="0" /> <xs:element ref="Options" minOccurs="0" />
</xs:sequence> </xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="platform" type="xs:string" use="required" /> <xs:attribute name="platform" type="xs:string" use="required" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Options"> <xs:element name="Options">
<xs:complexType> <xs:complexType>
<xs:all> <xs:all>
<xs:element name="CompilerDefines" type="xs:string" minOccurs="0" /> <xs:element name="CompilerDefines" type="xs:string" minOccurs="0" />
<xs:element name="OptimizeCode" type="xs:boolean" minOccurs="0" /> <xs:element name="OptimizeCode" type="xs:boolean" minOccurs="0" />
<xs:element name="CheckUnderflowOverflow" type="xs:boolean" minOccurs="0" /> <xs:element name="CheckUnderflowOverflow" type="xs:boolean" minOccurs="0" />
<xs:element name="AllowUnsafe" type="xs:boolean" minOccurs="0" /> <xs:element name="AllowUnsafe" type="xs:boolean" minOccurs="0" />
<xs:element name="PreBuildEvent" type="xs:string" minOccurs="0" /> <xs:element name="PreBuildEvent" type="xs:string" minOccurs="0" />
<xs:element name="PostBuildEvent" type="xs:string" minOccurs="0" /> <xs:element name="PostBuildEvent" type="xs:string" minOccurs="0" />
<xs:element name="RunPostBuildEvent" minOccurs="0" default="OnBuildSuccess"> <xs:element name="RunPostBuildEvent" minOccurs="0" default="OnBuildSuccess">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="OnBuildSuccess" /> <xs:enumeration value="OnBuildSuccess" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="OnOutputUpdated" /> <xs:enumeration value="OnOutputUpdated" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="RunScript" type="xs:string" minOccurs="0" /> <xs:element name="RunScript" type="xs:string" minOccurs="0" />
<xs:element name="PreBuildEventArgs" type="xs:string" minOccurs="0" /> <xs:element name="PreBuildEventArgs" type="xs:string" minOccurs="0" />
<xs:element name="PostBuildEventArgs" type="xs:string" minOccurs="0" /> <xs:element name="PostBuildEventArgs" type="xs:string" minOccurs="0" />
<xs:element name="WarningLevel" minOccurs="0"> <xs:element name="WarningLevel" minOccurs="0">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:integer"> <xs:restriction base="xs:integer">
<xs:minInclusive value="0" /> <xs:minInclusive value="0" />
<xs:maxInclusive value="4" /> <xs:maxInclusive value="4" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="WarningsAsErrors" type="xs:boolean" minOccurs="0" /> <xs:element name="WarningsAsErrors" type="xs:boolean" minOccurs="0" />
<xs:element name="SuppressWarnings" type="xs:string" minOccurs="0" /> <xs:element name="SuppressWarnings" type="xs:string" minOccurs="0" />
<xs:element name="OutputPath" type="xs:string" minOccurs="0" /> <xs:element name="OutputPath" type="xs:string" minOccurs="0" />
<xs:element name="GenerateDocumentation" type="xs:boolean" minOccurs="0" /> <xs:element name="GenerateDocumentation" type="xs:boolean" minOccurs="0" />
<xs:element name="XmlDocFile" type="xs:string" minOccurs="0" /> <xs:element name="XmlDocFile" type="xs:string" minOccurs="0" />
<xs:element name="DebugInformation" type="xs:boolean" minOccurs="0" /> <xs:element name="DebugInformation" type="xs:boolean" minOccurs="0" />
<xs:element name="RegisterComInterop" type="xs:boolean" minOccurs="0" /> <xs:element name="RegisterComInterop" type="xs:boolean" minOccurs="0" />
<xs:element name="RemoveIntegerChecks" type="xs:boolean" minOccurs="0" /> <xs:element name="RemoveIntegerChecks" type="xs:boolean" minOccurs="0" />
<xs:element name="IncrementalBuild" type="xs:boolean" minOccurs="0" /> <xs:element name="IncrementalBuild" type="xs:boolean" minOccurs="0" />
<xs:element name="BaseAddress" type="xs:string" minOccurs="0" /> <xs:element name="BaseAddress" type="xs:string" minOccurs="0" />
<xs:element name="FileAlignment" type="xs:integer" minOccurs="0" /> <xs:element name="FileAlignment" type="xs:integer" minOccurs="0" />
<xs:element name="NoStdLib" type="xs:boolean" minOccurs="0" /> <xs:element name="NoStdLib" type="xs:boolean" minOccurs="0" />
<xs:element name="KeyFile" type="xs:string" minOccurs="0" /> <xs:element name="KeyFile" type="xs:string" minOccurs="0" />
</xs:all> </xs:all>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Files"> <xs:element name="Files">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="File" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="File" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Match" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Match" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="File"> <xs:element name="File">
<xs:complexType> <xs:complexType>
<xs:simpleContent> <xs:simpleContent>
<xs:extension base="xs:string"> <xs:extension base="xs:string">
<xs:attribute name="resourceName" type="xs:string" default="" /> <xs:attribute name="resourceName" type="xs:string" default="" />
<xs:attribute name="buildAction" default="Compile"> <xs:attribute name="buildAction" default="Compile">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="None" /> <xs:enumeration value="None" />
<xs:enumeration value="Compile" /> <xs:enumeration value="Compile" />
<xs:enumeration value="Content" /> <xs:enumeration value="Content" />
<xs:enumeration value="EmbeddedResource" /> <xs:enumeration value="EmbeddedResource" />
<xs:enumeration value="ApplicationDefinition" /> <xs:enumeration value="ApplicationDefinition" />
<xs:enumeration value="Page" /> <xs:enumeration value="Page" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="subType" default="Code"> <xs:attribute name="subType" default="Code">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Code" /> <xs:enumeration value="Code" />
<xs:enumeration value="CodeBehind" /> <xs:enumeration value="CodeBehind" />
<xs:enumeration value="Component" /> <xs:enumeration value="Component" />
<xs:enumeration value="Form" /> <xs:enumeration value="Form" />
<xs:enumeration value="Settings" /> <xs:enumeration value="Settings" />
<xs:enumeration value="UserControl" /> <xs:enumeration value="UserControl" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="link" type="xs:boolean" /> <xs:attribute name="link" type="xs:boolean" />
<xs:attribute name="copyToOutput" default="Never"> <xs:attribute name="copyToOutput" default="Never">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Never" /> <xs:enumeration value="Never" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="PreserveNewest" /> <xs:enumeration value="PreserveNewest" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="preservePath" type="xs:boolean" /> <xs:attribute name="preservePath" type="xs:boolean" />
<xs:attribute name="linkPath" type="xs:string" /> <xs:attribute name="linkPath" type="xs:string" />
</xs:extension> </xs:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Match"> <xs:element name="Match">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element ref="Exclude" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="Exclude" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence> </xs:sequence>
<xs:attribute name="path" type="xs:string" /> <xs:attribute name="path" type="xs:string" />
<xs:attribute name="pattern" type="xs:string" use="required" /> <xs:attribute name="pattern" type="xs:string" use="required" />
<xs:attribute name="recurse" type="xs:boolean" default="false" /> <xs:attribute name="recurse" type="xs:boolean" default="false" />
<xs:attribute name="useRegex" type="xs:boolean" default="false" /> <xs:attribute name="useRegex" type="xs:boolean" default="false" />
<xs:attribute name="buildAction" default="Compile"> <xs:attribute name="buildAction" default="Compile">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="None" /> <xs:enumeration value="None" />
<xs:enumeration value="Compile" /> <xs:enumeration value="Compile" />
<xs:enumeration value="Content" /> <xs:enumeration value="Content" />
<xs:enumeration value="EmbeddedResource" /> <xs:enumeration value="EmbeddedResource" />
<xs:enumeration value="ApplicationDefinition" /> <xs:enumeration value="ApplicationDefinition" />
<xs:enumeration value="Page" /> <xs:enumeration value="Page" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="resourceName" type="xs:string" default="" /> <xs:attribute name="resourceName" type="xs:string" default="" />
<xs:attribute name="subType" default="Code"> <xs:attribute name="subType" default="Code">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Code" /> <xs:enumeration value="Code" />
<xs:enumeration value="CodeBehind" /> <xs:enumeration value="CodeBehind" />
<xs:enumeration value="Component" /> <xs:enumeration value="Component" />
<xs:enumeration value="Designer" /> <xs:enumeration value="Designer" />
<xs:enumeration value="Form" /> <xs:enumeration value="Form" />
<xs:enumeration value="Settings" /> <xs:enumeration value="Settings" />
<xs:enumeration value="UserControl" /> <xs:enumeration value="UserControl" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="link" type="xs:boolean" /> <xs:attribute name="link" type="xs:boolean" />
<xs:attribute name="copyToOutput" default="Never"> <xs:attribute name="copyToOutput" default="Never">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:enumeration value="Never" /> <xs:enumeration value="Never" />
<xs:enumeration value="Always" /> <xs:enumeration value="Always" />
<xs:enumeration value="PreserveNewest" /> <xs:enumeration value="PreserveNewest" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
<xs:attribute name="preservePath" type="xs:boolean" /> <xs:attribute name="preservePath" type="xs:boolean" />
<xs:attribute name="linkPath" type="xs:string" /> <xs:attribute name="linkPath" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Exclude"> <xs:element name="Exclude">
<xs:complexType> <xs:complexType>
<xs:attribute name="name" type="xs:string" /> <xs:attribute name="name" type="xs:string" />
<xs:attribute name="pattern" type="xs:string" /> <xs:attribute name="pattern" type="xs:string" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:schema> </xs:schema>

Binary file not shown.