123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- 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.
- _______________________________________________________________________________
- Overview
- 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)
- and Unix Shell script (*.sh) files.
- _______________________________________________________________________________
- The currently supported developement tools and their associated batch
- and shell script files.
- Visual Studio .NET 2005 (VS2005.bat)
- Visual Studio .NET 2003 (VS2003.bat)
- Visual Studio .NET 2002 (VS2002.bat)
- SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
- SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
- MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/
- NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/
- Autotools (autotools.bat and autotools.sh) - http://en.wikipedia.org/wiki/GNU_build_system
- Notes:
- A Unix Shell script is provided for MonoDevelop, as it does not run on
- Windows at this time.
- Visual Studio .NET 2005 and the Visual Express IDE's can import
- solutions from older versions of Visual Studio .NET.
- Makefiles are not currently supported.
- _______________________________________________________________________________
- Command Line Syntax:
-
- Example:
- > Prebuild /target vs2003
- 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
- parent directory
- The syntax structure is as below, where commandParameter is optional
- depending on the command and you can provide several option-value
- pairs.
- Note: The '> ' signifies the command prompt, do not enter this literally
- > Prebuild /<option> <commandParameter>
- > Prebuild /target vs2003 /pause
- > Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml
- > Prebuild /target sharpdev /log
- > Prebuild /removedir obj|bin
- > Prebuild /target vs2003 /allowedgroups Group1|Group2
- > Prebuild /clean
- > Prebuild /clean /yes
- > Prebuild /clean vs2003
- _______________________________________________________________________________
- Command Line Options:
- /usage - Shows the help information on how to use Prebuild and what
- the different options are and what they do
- /clean - The project files generated for the target type specified as
- 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
- will be deleted.
- /target - Specified the name of the development tool for which project
- or make files will be generated. Possible parameter values include:
- vs2003, vs2002, sharpdev
- /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
- options for them. If not specified, prebuild.xml in the current
- directory will be used as the default.
- /log - Specified the log file that should be written to for build
- 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
- used for the log (Prebuild.log).
- /ppo - Preprocesses the xml file to test for syntax errors or problems
- but doesn't generate the files
- /pause - Shows the console until you press a key so that you can view
- the messages written while performing the specified actions.
- This allows you to check if an errors occurred and - if so - what it
- was.
- /showtargets - Shows a list of all the targets that can be specified
- as values for the /clean and /target commands.
- /allowedgroups - This is 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
- /removedir - This is followed by a pipe-delimited list of directory
- names that will be deleted while recursivly searching the directory of
- the prebuild application and its child directories (eg. use obj|bin to
- delete all output and temporary directories before file releases)
- /yes - Answer yes to any warnings (e.g. when cleaning all projects).
- _______________________________________________________________________________
- Example Batch Files and Shell Scripts
- NOTE: Common batch and shell script files are included with Prebuild source and file releases.
- ______________________________
- MonoDevelop
- #!/bin/sh
- # Generates a solution (.mds) and a set of project files (.mdp)
- # for MonoDevelop, a Mono port of SharpDevelop
- # (http://icsharpcode.net/OpenSource/SD/Default.aspx)
- ./Prebuild /target monodev /pause
- ______________________________
- Visual Studio .NET 2003
- @rem Generates a solution (.sln) and a set of project files (.csproj)
- @rem for Microsoft Visual Studio .NET 2002
- Prebuild /target vs2003 /pause
- Notes:
- 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.
- _______________________________________________________________________________
- Example XML Configuration File
- Note:
- XML Comments () are used to markup the prebuild.xml
- file with notes
- The below file may be out-of-date, however the RealmForge Prebuild
- file serves as an up-to-date and extensive example.
- It can be viewed using Tigris.org's WebSVN
- (http://realmforge.tigris.org/source/browse/realmforge/trunk/src/prebuild.xml)
- by just clicking on the "view file" link for the latest revision.
- _________________________________
- <?xml version="1.0" encoding="utf-8"?>
-
- <Prebuild version="1.6" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.6.xsd">
- <Solution name="RealmForge">
-
- <Configuration name="Debug">
- <Options>
-
- <?if OS = "Win32" ?>
- <CompilerDefines>DEBUG;TRACE;WIN32</CompilerDefines>
- <?else ?>
- <CompilerDefines>DEBUG;TRACE;POSIX</CompilerDefines>
- <?endif ?>
- <OptimizeCode>false</OptimizeCode>
- <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
- <AllowUnsafe>false</AllowUnsafe>
- <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).-->
- <WarningsAsErrors>false</WarningsAsErrors>
- <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
-
- <OutputPath>..\bin</OutputPath>
- <DebugInformation>true</DebugInformation>
- <RegisterComInterop>false</RegisterComInterop>
- <IncrementalBuild>true</IncrementalBuild>
- <BaseAddress>285212672</BaseAddress>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <XmlDocFile>Docs.xml</XmlDocFile>
- </Options>
- </Configuration>
- <Configuration name="Release">
- <Options>
- <CompilerDefines>TRACE</CompilerDefines>
- <OptimizeCode>true</OptimizeCode>
- <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
- <AllowUnsafe>false</AllowUnsafe>
- <WarningLevel>4</WarningLevel>
- <WarningsAsErrors>false</WarningsAsErrors>
- <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
- <OutputPath>..\bin</OutputPath>
- <DebugInformation>false</DebugInformation>
- <RegisterComInterop>false</RegisterComInterop>
- <IncrementalBuild>true</IncrementalBuild>
- <BaseAddress>285212672</BaseAddress>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <GenerateXmlDocFile>true</GenerateXmlDocFile>
- <XmlDocFile>Docs.xml</XmlDocFile>
- </Options>
- </Configuration>
-
- <Project name="RealmForge.Utility" Language="VisualBasic" path="Utility" type="Library" assemblyName="RealmForge.Utility" rootNamespace="RealmForge">
- <Configuration name="Debug">
- <Options>
- <OutputPath>..\bin\lib\Utility</OutputPath>
- <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
- </Options>
- </Configuration>
- <Configuration name="Release">
- <Options>
- <OutputPath>..\bin\lib\Utility</OutputPath>
- <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
- </Options>
- </Configuration>
- <ReferencePath>../bin</ReferencePath>
- <Reference name="System"/>
- <Reference name="System.Data"/>
- <Reference name="System.Drawing"/>
- <Reference name="System.Xml"/>
- <Reference name="System.Runtime.Serialization.Formatters.Soap"/>
- <Reference name="ICSharpCode.SharpZipLib"/>
- <Files>
- <Match path="." pattern="*.vb" recurse="true"/>
- </Files>
- </Project>
-
- <Project name="DemoGame" Language="C#" path="DemoGame" type="WinExe" icon="..\bin\RealmForge.ico" assemblyName="DemoGame" rootNamespace="RealmForge">
-
-
- <Configuration name="Debug">
- <Options>
- <OutputPath>..\bin</OutputPath>
- <XmlDocFile>DemoGame.xml</XmlDocFile>
- </Options>
- </Configuration>
- <Configuration name="Release">
- <Options>
- <OutputPath>..\bin</OutputPath>
- <XmlDocFile>DemoGame.xml</XmlDocFile>
- </Options>
- </Configuration>
- <ReferencePath>../bin</ReferencePath>
- <Reference name="System"/>
- <Reference name="ode"/>
- <Reference name="RealmForge.Utility"/>
- <Files>
- <Match path="." pattern="*.cs" recurse="true"/>
- <Match path="." pattern="*.bmp" recurse="true" buildAction="EmbeddedResource"/>
- <Match path="." pattern="[^a]*\.(png|jpg)" useRegex="true" buildAction="EmbeddedResource"/>
-
-
-
- </Files>
- </Project>
-
- </Solution>
- </Prebuild>
|