source: trunk/yao/share/antlr-2.7.7/lib/csharp/antlr.runtime.build @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

File size: 8.8 KB
Line 
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>
Note: See TracBrowser for help on using the repository browser.