aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Prebuild/README
diff options
context:
space:
mode:
Diffstat (limited to 'Prebuild/README')
-rw-r--r--Prebuild/README460
1 files changed, 230 insertions, 230 deletions
diff --git a/Prebuild/README b/Prebuild/README
index eca6be1..4341e42 100644
--- a/Prebuild/README
+++ b/Prebuild/README
@@ -1,230 +1,230 @@
1Prebuild Instructions 1Prebuild Instructions
2 2
3Prebuild 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. 3Prebuild 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.
4 4
5_________________________________________________________________________________ 5_________________________________________________________________________________
6Overview 6Overview
7 7
8Prebuild 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. 8Prebuild 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.
9The Prebuild file 9The Prebuild file
10 10
11_________________________________________________________________________________ 11_________________________________________________________________________________
12The currently supported developement tools and their associated batch and shell script files. 12The currently supported developement tools and their associated batch and shell script files.
13 13
14Visual Studio .NET 2005 (VS2005.bat) 14Visual Studio .NET 2005 (VS2005.bat)
15Visual Studio .NET 2003 (VS2003.bat) 15Visual Studio .NET 2003 (VS2003.bat)
16Visual Studio .NET 2002 (VS2002.bat) 16Visual Studio .NET 2002 (VS2002.bat)
17SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/ 17SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
18SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/ 18SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
19MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/ 19MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/
20NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/ 20NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/
21Autotools (autotools.bat and autotools.sh) http://www.gnu.org. Only partial support 21Autotools (autotools.bat and autotools.sh) http://www.gnu.org. Only partial support
22 22
23Notes: 23Notes:
24A Unix Shell script is provided for MonoDevelop, as this is more appropriate than a windows batch file. 24A Unix Shell script is provided for MonoDevelop, as this is more appropriate than a windows batch file.
25Visual Studio .NET 2005 and the Visual Express IDE's can import solutions from older versions of Visual Studio .NET. 25Visual Studio .NET 2005 and the Visual Express IDE's can import solutions from older versions of Visual Studio .NET.
26Makefiles are not currently supported. 26Makefiles are not currently supported.
27 27
28_________________________________________________________________________________ 28_________________________________________________________________________________
29Command Line Syntax: 29Command Line Syntax:
30 30
31Example: 31Example:
32>Prebuild /target vs2003 32>Prebuild /target vs2003
33 33
34This 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 34This 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
35 35
36 36
37The syntax structure is as below, where commandParameter is optional depending on the command and you can provide several option-value pairs. 37The syntax structure is as below, where commandParameter is optional depending on the command and you can provide several option-value pairs.
38Note: The '>' signified the command line, do not actually enter this manually 38Note: The '>' signified the command line, do not actually enter this manually
39 39
40>Prebuild /<option> <commandParameter> 40>Prebuild /<option> <commandParameter>
41 41
42>Prebuild /target vs2003 /pause 42>Prebuild /target vs2003 /pause
43 43
44>Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml 44>Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml
45 45
46>Prebuild /target sharpdev /log 46>Prebuild /target sharpdev /log
47 47
48>Prebuild /removedir obj|bin 48>Prebuild /removedir obj|bin
49 49
50>Prebuild /target vs2003 /allowedgroups Group1|Group2 50>Prebuild /target vs2003 /allowedgroups Group1|Group2
51 51
52>Prebuild /clean 52>Prebuild /clean
53 53
54>Prebuild /clean /yes 54>Prebuild /clean /yes
55 55
56>Prebuild /clean vs2003 56>Prebuild /clean vs2003
57 57
58_________________________________________________________________________________ 58_________________________________________________________________________________
59Command Line Options: 59Command Line Options:
60 60
61/usage - Shows the help information on how to use Prebuild and what the different options are and what they do 61/usage - Shows the help information on how to use Prebuild and what the different options are and what they do
62 62
63/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. 63/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.
64 64
65/target - Specified the name of the development tool for which project or make files will be generated. Possible parameter values include: vs2003, vs2002, sharpdev 65/target - Specified the name of the development tool for which project or make files will be generated. Possible parameter values include: vs2003, vs2002, sharpdev
66 66
67/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 will be used as the default. 67/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 will be used as the default.
68 68
69/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). 69/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).
70 70
71/ppo - Preprocesses the xml file to test for syntax errors or problems but doesn't generate the files 71/ppo - Preprocesses the xml file to test for syntax errors or problems but doesn't generate the files
72 72
73/pause - Shows the console until you press a key so that you can view the messages written while performing the specified actions. 73/pause - Shows the console until you press a key so that you can view the messages written while performing the specified actions.
74This allows you to check if an errors occurred and - if so - what it was. 74This allows you to check if an errors occurred and - if so - what it was.
75 75
76/showtargets - Shows a list of all the targets that can be specified as values for the /clean and /target commands. 76/showtargets - Shows a list of all the targets that can be specified as values for the /clean and /target commands.
77 77
78/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 78/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
79 79
80/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) 80/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)
81 81
82/yes - Answer yes to any warnings (e.g. when cleaning all projects). 82/yes - Answer yes to any warnings (e.g. when cleaning all projects).
83 83
84_________________________________________________________________________________ 84_________________________________________________________________________________
85Example Batch Files and Shell Scripts 85Example Batch Files and Shell Scripts
86 86
87NOTE: Common batch and shell script files are included with Prebuild source and file releases. 87NOTE: Common batch and shell script files are included with Prebuild source and file releases.
88______________________________ 88______________________________
89MonoDevelop 89MonoDevelop
90 90
91#!/bin/sh 91#!/bin/sh
92# Generates a combine (.cmbx) and a set of project files (.prjx) 92# Generates a combine (.cmbx) and a set of project files (.prjx)
93# for MonoDevelop, a Mono port of SharpDevelop (http://icsharpcode.net/OpenSource/SD/Default.aspx) 93# for MonoDevelop, a Mono port of SharpDevelop (http://icsharpcode.net/OpenSource/SD/Default.aspx)
94./Prebuild /target sharpdev /pause 94./Prebuild /target sharpdev /pause
95 95
96______________________________ 96______________________________
97Visual Studio .NET 2003 97Visual Studio .NET 2003
98 98
99@rem Generates a solution (.sln) and a set of project files (.csproj) 99@rem Generates a solution (.sln) and a set of project files (.csproj)
100@rem for Microsoft Visual Studio .NET 2002 100@rem for Microsoft Visual Studio .NET 2002
101Prebuild /target vs2003 /pause 101Prebuild /target vs2003 /pause
102 102
103Notes: 103Notes:
104Text after lines that start with @rem are comments and are not evaluated 104Text after lines that start with @rem are comments and are not evaluated
105You can also place pause on the last line instead of specifing the /pause command. 105You can also place pause on the last line instead of specifing the /pause command.
106 106
107________________________________________________________________________________ 107________________________________________________________________________________
108Example XML Configuration File 108Example XML Configuration File
109 109
110Note: 110Note:
111XML Comments (<!-- Comment -->) are used to markup the prebuild.xml file with notes 111XML Comments (<!-- Comment -->) are used to markup the prebuild.xml file with notes
112The below file may be out-of-date, however the RealmForge Prebuild file serves as an up-to-date and extensive example. 112The below file may be out-of-date, however the RealmForge Prebuild file serves as an up-to-date and extensive example.
113It 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. 113It 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.
114 114
115_________________________________ 115_________________________________
116 116
117<?xml version="1.0" encoding="utf-8"?> 117<?xml version="1.0" encoding="utf-8"?>
118 <!--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. --> 118 <!--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. -->
119<Prebuild version="1.6" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.6.xsd"> 119<Prebuild version="1.6" xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.6.xsd">
120 <Solution name="RealmForge"> <!--The title and file name for the solution, combine, workspace, or project group (depending on what development tool you are using)--> 120 <Solution name="RealmForge"> <!--The title and file name for the solution, combine, workspace, or project group (depending on what development tool you are using)-->
121 <!--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.--> 121 <!--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.-->
122 <Configuration name="Debug"> 122 <Configuration name="Debug">
123 <Options> 123 <Options>
124 <!-- 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 --> 124 <!-- 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 -->
125 <?if OS = "Win32" ?> 125 <?if OS = "Win32" ?>
126 <CompilerDefines>DEBUG;TRACE;WIN32</CompilerDefines> 126 <CompilerDefines>DEBUG;TRACE;WIN32</CompilerDefines>
127 <?else ?> 127 <?else ?>
128 <CompilerDefines>DEBUG;TRACE;POSIX</CompilerDefines> 128 <CompilerDefines>DEBUG;TRACE;POSIX</CompilerDefines>
129 <?endif ?> 129 <?endif ?>
130 <OptimizeCode>false</OptimizeCode> 130 <OptimizeCode>false</OptimizeCode>
131 <CheckUnderflowOverflow>false</CheckUnderflowOverflow> 131 <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
132 <AllowUnsafe>false</AllowUnsafe> 132 <AllowUnsafe>false</AllowUnsafe>
133 <WarningLevel>4</WarningLevel> 133 <WarningLevel>4</WarningLevel>
134 <!-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).--> 134 <!-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).-->
135 135
136 <WarningsAsErrors>false</WarningsAsErrors> 136 <WarningsAsErrors>false</WarningsAsErrors>
137 <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings> 137 <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
138 <!-- 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)--> 138 <!-- 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)-->
139 139
140 <OutputPath>..\bin</OutputPath> 140 <OutputPath>..\bin</OutputPath>
141 <DebugInformation>true</DebugInformation> 141 <DebugInformation>true</DebugInformation>
142 <RegisterComInterop>false</RegisterComInterop> 142 <RegisterComInterop>false</RegisterComInterop>
143 <IncrementalBuild>true</IncrementalBuild> 143 <IncrementalBuild>true</IncrementalBuild>
144 <BaseAddress>285212672</BaseAddress> 144 <BaseAddress>285212672</BaseAddress>
145 <FileAlignment>4096</FileAlignment> 145 <FileAlignment>4096</FileAlignment>
146 <NoStdLib>false</NoStdLib> 146 <NoStdLib>false</NoStdLib>
147 <XmlDocFile>Docs.xml</XmlDocFile> 147 <XmlDocFile>Docs.xml</XmlDocFile>
148 </Options> 148 </Options>
149 </Configuration> 149 </Configuration>
150 <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 --> 150 <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 -->
151 <Options> 151 <Options>
152 <CompilerDefines>TRACE</CompilerDefines> 152 <CompilerDefines>TRACE</CompilerDefines>
153 <OptimizeCode>true</OptimizeCode> 153 <OptimizeCode>true</OptimizeCode>
154 <CheckUnderflowOverflow>false</CheckUnderflowOverflow> 154 <CheckUnderflowOverflow>false</CheckUnderflowOverflow>
155 <AllowUnsafe>false</AllowUnsafe> 155 <AllowUnsafe>false</AllowUnsafe>
156 <WarningLevel>4</WarningLevel> 156 <WarningLevel>4</WarningLevel>
157 <WarningsAsErrors>false</WarningsAsErrors> 157 <WarningsAsErrors>false</WarningsAsErrors>
158 <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings> 158 <SuppressWarnings>1591;219;1573;1572;168</SuppressWarnings>
159 <OutputPath>..\bin</OutputPath> 159 <OutputPath>..\bin</OutputPath>
160 <DebugInformation>false</DebugInformation> 160 <DebugInformation>false</DebugInformation>
161 <RegisterComInterop>false</RegisterComInterop> 161 <RegisterComInterop>false</RegisterComInterop>
162 <IncrementalBuild>true</IncrementalBuild> 162 <IncrementalBuild>true</IncrementalBuild>
163 <BaseAddress>285212672</BaseAddress> 163 <BaseAddress>285212672</BaseAddress>
164 <FileAlignment>4096</FileAlignment> 164 <FileAlignment>4096</FileAlignment>
165 <NoStdLib>false</NoStdLib> 165 <NoStdLib>false</NoStdLib>
166 <GenerateXmlDocFile>true</GenerateXmlDocFile> 166 <GenerateXmlDocFile>true</GenerateXmlDocFile>
167 <XmlDocFile>Docs.xml</XmlDocFile> 167 <XmlDocFile>Docs.xml</XmlDocFile>
168 </Options> 168 </Options>
169 </Configuration> 169 </Configuration>
170 170
171 <!-- One of the projects that is included in the Solution --> 171 <!-- One of the projects that is included in the Solution -->
172 <Project name="RealmForge.Utility" Language="VisualBasic" path="Utility" type="Library" assemblyName="RealmForge.Utility" rootNamespace="RealmForge"> 172 <Project name="RealmForge.Utility" Language="VisualBasic" path="Utility" type="Library" assemblyName="RealmForge.Utility" rootNamespace="RealmForge">
173 <Configuration name="Debug"> 173 <Configuration name="Debug">
174 <Options> 174 <Options>
175 <OutputPath>..\bin\lib\Utility</OutputPath> 175 <OutputPath>..\bin\lib\Utility</OutputPath>
176 <XmlDocFile>RealmForge.Utility.xml</XmlDocFile> 176 <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
177 </Options> 177 </Options>
178 </Configuration> 178 </Configuration>
179 <Configuration name="Release"> 179 <Configuration name="Release">
180 <Options> 180 <Options>
181 <OutputPath>..\bin\lib\Utility</OutputPath> 181 <OutputPath>..\bin\lib\Utility</OutputPath>
182 <XmlDocFile>RealmForge.Utility.xml</XmlDocFile> 182 <XmlDocFile>RealmForge.Utility.xml</XmlDocFile>
183 </Options> 183 </Options>
184 </Configuration> 184 </Configuration>
185 <ReferencePath>../bin</ReferencePath> 185 <ReferencePath>../bin</ReferencePath>
186 <Reference name="System"/> 186 <Reference name="System"/>
187 <Reference name="System.Data"/> 187 <Reference name="System.Data"/>
188 <Reference name="System.Drawing"/> 188 <Reference name="System.Drawing"/>
189 <Reference name="System.Xml"/> 189 <Reference name="System.Xml"/>
190 <Reference name="System.Runtime.Serialization.Formatters.Soap"/> 190 <Reference name="System.Runtime.Serialization.Formatters.Soap"/>
191 <Reference name="ICSharpCode.SharpZipLib"/> 191 <Reference name="ICSharpCode.SharpZipLib"/>
192 <Files> 192 <Files>
193 <Match path="." pattern="*.vb" recurse="true"/> 193 <Match path="." pattern="*.vb" recurse="true"/>
194 </Files> 194 </Files>
195 </Project> 195 </Project>
196 196
197 <!-- Another projects that is included in the Solution --> 197 <!-- Another projects that is included in the Solution -->
198 <Project name="DemoGame" Language="C#" path="DemoGame" type="WinExe" icon="..\bin\RealmForge.ico" assemblyName="DemoGame" rootNamespace="RealmForge"> 198 <Project name="DemoGame" Language="C#" path="DemoGame" type="WinExe" icon="..\bin\RealmForge.ico" assemblyName="DemoGame" rootNamespace="RealmForge">
199 <!-- 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 --> 199 <!-- 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 -->
200 <!--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--> 200 <!--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-->
201 201
202 <Configuration name="Debug"> 202 <Configuration name="Debug">
203 <Options> 203 <Options>
204 <OutputPath>..\bin</OutputPath> 204 <OutputPath>..\bin</OutputPath>
205 <XmlDocFile>DemoGame.xml</XmlDocFile> 205 <XmlDocFile>DemoGame.xml</XmlDocFile>
206 </Options> 206 </Options>
207 </Configuration> 207 </Configuration>
208 <Configuration name="Release"> 208 <Configuration name="Release">
209 <Options> 209 <Options>
210 <OutputPath>..\bin</OutputPath> 210 <OutputPath>..\bin</OutputPath>
211 <XmlDocFile>DemoGame.xml</XmlDocFile> 211 <XmlDocFile>DemoGame.xml</XmlDocFile>
212 </Options> 212 </Options>
213 </Configuration> 213 </Configuration>
214 <ReferencePath>../bin</ReferencePath> 214 <ReferencePath>../bin</ReferencePath>
215 <Reference name="System"/> <!-- Assemblies that are located in the GAC (installed, global) can be referenced--> 215 <Reference name="System"/> <!-- Assemblies that are located in the GAC (installed, global) can be referenced-->
216 <Reference name="ode"/> <!-- Assemblies that are located in the output directory to which the file is built can be referenced --> 216 <Reference name="ode"/> <!-- Assemblies that are located in the output directory to which the file is built can be referenced -->
217 <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--> 217 <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-->
218 <Files> 218 <Files>
219 <Match path="." pattern="*.cs" recurse="true"/> 219 <Match path="." pattern="*.cs" recurse="true"/>
220 <Match path="." pattern="*.bmp" recurse="true" buildAction="EmbeddedResource"/> 220 <Match path="." pattern="*.bmp" recurse="true" buildAction="EmbeddedResource"/>
221 <Match path="." pattern="[^a]*\.(png|jpg)" useRegex="true" buildAction="EmbeddedResource"/> 221 <Match path="." pattern="[^a]*\.(png|jpg)" useRegex="true" buildAction="EmbeddedResource"/>
222 222
223 <!-- 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.--> 223 <!-- 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.-->
224 <!--EmbeddedResource, Content, and Compile are valid buildAction's--> 224 <!--EmbeddedResource, Content, and Compile are valid buildAction's-->
225 </Files> 225 </Files>
226 </Project> 226 </Project>
227 227
228 </Solution> 228 </Solution>
229</Prebuild> 229</Prebuild>
230 230