1 | <?xml version="1.0"?> |
---|
2 | <project name="antlr.runtime" default="usage"> |
---|
3 | <!-- =================================================================== --> |
---|
4 | <!-- Initialization target --> |
---|
5 | <!-- =================================================================== --> |
---|
6 | |
---|
7 | <target name="init"> |
---|
8 | <tstamp/> |
---|
9 | <property name="debug" value="true"/> |
---|
10 | <property name="project.name" value="antlr.runtime"/> |
---|
11 | <property name="project.FileName" value="antlr.runtime"/> |
---|
12 | <property name="astframe.FileName" value="antlr.astframe"/> |
---|
13 | |
---|
14 | <property name="src.dir" value="antlr.runtime"/> |
---|
15 | <property name="build.dir" value="antlr.runtime/bin"/> |
---|
16 | <property name="astframe.src.dir" value="antlr.astframe"/> |
---|
17 | <property name="astframe.build.dir" value="antlr.astframe/bin"/> |
---|
18 | <property name="dist.dir" value="release"/> |
---|
19 | <property name="compile.dir" value="${build.dir}"/> |
---|
20 | <property name="astframe.compile.dir" value="${astframe.build.dir}"/> |
---|
21 | |
---|
22 | <property name="backup.name" value="${project.name}-backup-${tstamp.date}-${tstamp.time}.zip" /> |
---|
23 | <property name="project.version" value="x.x"/> |
---|
24 | <property name="year" value="2005"/> |
---|
25 | |
---|
26 | <!-- Use script task to get this from AssemblyInfo.cs using a regular expression --> |
---|
27 | <script language="C#"> |
---|
28 | <code><![CDATA[ |
---|
29 | public static void ScriptMain(Project project) { |
---|
30 | string assemblyInfoFileName = Path.Combine(project.BaseDirectory, "antlr.runtime/AssemblyInfo.cs"); |
---|
31 | StreamReader reader = File.OpenText(assemblyInfoFileName); |
---|
32 | |
---|
33 | try { |
---|
34 | // Regular expression built with Regex: http://www.organicbit.com/regex/ |
---|
35 | Regex expression = new Regex(@"^\[assembly: AssemblyVersion\(\""([0-9]+)\.([0-9]+)\.([0-9]+)"); |
---|
36 | string line = reader.ReadLine(); |
---|
37 | while (line != null) { |
---|
38 | Match match = expression.Match(line); |
---|
39 | if (match.Success) { |
---|
40 | project.Properties["project.version"] = match.Result("$1.$2.$3"); |
---|
41 | break; |
---|
42 | } |
---|
43 | line = reader.ReadLine(); |
---|
44 | } |
---|
45 | } finally { |
---|
46 | // must remember to close the file or the compile may not work |
---|
47 | reader.Close(); |
---|
48 | } |
---|
49 | } |
---|
50 | ]]></code> |
---|
51 | </script> |
---|
52 | |
---|
53 | <echo message="------------------- ${project.name} ${project.version} [${year}] ----------------"/> |
---|
54 | </target> |
---|
55 | |
---|
56 | |
---|
57 | <!-- =================================================================== --> |
---|
58 | <!-- Help on usage --> |
---|
59 | <!-- =================================================================== --> |
---|
60 | |
---|
61 | <target name="usage" depends="init"> |
---|
62 | <echo message="${project.name} - Nant Build file"/> |
---|
63 | <echo message="-------------------------------------------------------------"/> |
---|
64 | <echo message=""/> |
---|
65 | <echo message=" available targets are:"/> |
---|
66 | <echo message=""/> |
---|
67 | <echo message=" build --> build a developer/debug version under '${build.dir}'"/> |
---|
68 | <echo message=" clean --> cleans up the '${build.dir}' directory"/> |
---|
69 | <echo message=" release --> build a release version under '${dist.dir}'"/> |
---|
70 | <echo message=" docs --> builds the compiled documentation in '${dist.dir}'"/> |
---|
71 | <echo message=" cleanrel --> cleans up the '${dist.dir}' directory"/> |
---|
72 | <echo message=" usage --> show this message (default)"/> |
---|
73 | <echo message=""/> |
---|
74 | <echo message=" See comments in '${project.FileName}.build' file for more details."/> |
---|
75 | <echo message="-------------------------------------------------------------"/> |
---|
76 | </target> |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | <target name="build" depends="init" description="makes a debug build, usage: 'nant clean build'"> |
---|
81 | <property name="debug" value="true"/> |
---|
82 | <property name="compile.dir" value="${build.dir}"/> |
---|
83 | <property name="astframe.compile.dir" value="${astframe.build.dir}"/> |
---|
84 | |
---|
85 | <property name="dist.name" value="${project.name}-src-${project.version}.zip"/> |
---|
86 | <echo message="Building ${project.name}-${project.version} (debug)"/> |
---|
87 | <call target="compile"/> |
---|
88 | </target> |
---|
89 | |
---|
90 | <target name="release" depends="init" description="makes a release build, usage: 'nant clean release'"> |
---|
91 | <property name="debug" value="false"/> |
---|
92 | <property name="compile.dir" value="${dist.dir}"/> |
---|
93 | <property name="astframe.compile.dir" value="${dist.dir}"/> |
---|
94 | |
---|
95 | <property name="dist.name" value="${project.name}-src-${project.version}.zip"/> |
---|
96 | <echo message="Building ${project.name}-${project.version} (release)"/> |
---|
97 | <call target="compile"/> |
---|
98 | </target> |
---|
99 | |
---|
100 | <target name="clean" depends="init" description="cleans up 'build' directory"> |
---|
101 | <delete dir="${build.dir}" failonerror="false"/> |
---|
102 | </target> |
---|
103 | |
---|
104 | <target name="cleanrel" depends="init" description="cleans up 'release' directory"> |
---|
105 | <delete dir="${dist.dir}" failonerror="false"/> |
---|
106 | </target> |
---|
107 | |
---|
108 | <target name="compile" depends="init" description="compiles the source code"> |
---|
109 | <mkdir dir="${compile.dir}"/> |
---|
110 | <mkdir dir="${astframe.compile.dir}"/> |
---|
111 | |
---|
112 | <!-- compile antlr.runtime.dll --> |
---|
113 | <csc target="library" output="${compile.dir}/${project.FileName}.dll" debug="${debug}" doc="${build.dir}/${project.FileName}.xml"> |
---|
114 | <sources basedir="${src.dir}"> |
---|
115 | <include name="**/*.cs"/> |
---|
116 | <exclude name="NAnt.cs"/> |
---|
117 | </sources> |
---|
118 | <references> |
---|
119 | <include name="System.dll" /> |
---|
120 | </references> |
---|
121 | <arg value="/nowarn:1591"/> |
---|
122 | </csc> |
---|
123 | |
---|
124 | <!-- copy the antlr.runtime assembly to the astframe build folder --> |
---|
125 | <copy file="${compile.dir}\${project.FileName}.dll" tofile="${astframe.compile.dir}\${project.FileName}.dll" /> |
---|
126 | |
---|
127 | <!-- compile antlr.astframe.dll --> |
---|
128 | <csc target="library" output="${astframe.compile.dir}/${astframe.FileName}.dll" debug="${debug}" doc="${astframe.build.dir}/${astframe.FileName}.xml"> |
---|
129 | <sources basedir="${astframe.src.dir}"> |
---|
130 | <include name="**/*.cs"/> |
---|
131 | <exclude name="NAnt.cs"/> |
---|
132 | </sources> |
---|
133 | <references> |
---|
134 | <include name="System.dll" /> |
---|
135 | <include name="System.Drawing.dll" /> |
---|
136 | <include name="System.Windows.Forms.dll" /> |
---|
137 | <include name="${astframe.compile.dir}\${project.FileName}.dll" /> |
---|
138 | </references> |
---|
139 | <arg value="/nowarn:1591"/> |
---|
140 | </csc> |
---|
141 | </target> |
---|
142 | |
---|
143 | <target name="docs" depends="build" description="build documentation"> |
---|
144 | <echo message="Requires HtmlHelp compiler (hhc.exe) to be in the system path"/> |
---|
145 | <ndoc failonerror="false"> |
---|
146 | <assemblies basedir="${build.dir}"> |
---|
147 | <include name="${project.FileName}.dll"/> |
---|
148 | </assemblies> |
---|
149 | <documenters> |
---|
150 | <documenter name="MSDN"> |
---|
151 | <property name="OutputDirectory" value="${build.dir}/docs/MSDN" /> |
---|
152 | <property name="HtmlHelpName" value="${project.FileName}" /> |
---|
153 | <property name="HtmlHelpCompilerFilename" value="hhc.exe" /> |
---|
154 | <property name="IncludeFavorites" value="False" /> |
---|
155 | <property name="Title" value="ANTLR Runtime for .NET" /> |
---|
156 | <property name="SplitTOCs" value="False" /> |
---|
157 | <property name="DefaulTOC" value="" /> |
---|
158 | <property name="ShowVisualBasic" value="True" /> |
---|
159 | <property name="ShowMissingSummaries" value="True" /> |
---|
160 | <property name="ShowMissingRemarks" value="True" /> |
---|
161 | <property name="ShowMissingParams" value="True" /> |
---|
162 | <property name="ShowMissingReturns" value="True" /> |
---|
163 | <property name="ShowMissingValues" value="True" /> |
---|
164 | <property name="DocumentInternals" value="False" /> |
---|
165 | <property name="DocumentProtected" value="True" /> |
---|
166 | <property name="DocumentPrivates" value="False" /> |
---|
167 | <property name="DocumentEmptyNamespaces" value="False" /> |
---|
168 | <property name="IncludeAssemblyVersion" value="False" /> |
---|
169 | <property name="CopyrightText" value="" /> |
---|
170 | <property name="CopyrightHref" value="" /> |
---|
171 | </documenter> |
---|
172 | </documenters> |
---|
173 | </ndoc> |
---|
174 | <copy file="${build.dir}/docs/MSDN/${project.FileName}.chm" todir="${dist.dir}"/> |
---|
175 | <!-- <delete dir="${build.dir}/docs/MSDN" failonerror="false"/> --> |
---|
176 | </target> |
---|
177 | |
---|
178 | <target name="backup" depends="init" description="make local backup"> |
---|
179 | <echo message="Creating backup ${backup.name}"/> |
---|
180 | <zip zipfile="${backup.name}"> |
---|
181 | <fileset basedir="."> |
---|
182 | <include name="**"/> |
---|
183 | <exclude name="**/*.suo"/> |
---|
184 | <exclude name="**/*.csproj.user"/> |
---|
185 | <exclude name="bin/**"/> |
---|
186 | <exclude name="obj/**"/> |
---|
187 | <exclude name="build/**"/> |
---|
188 | </fileset> |
---|
189 | </zip> |
---|
190 | </target> |
---|
191 | </project> |
---|