Home | History | Annotate | Download | only in CSharp2
      1 <?xml version="1.0" encoding='iso-8859-1' ?>
      2 <project name="all" default="usage">
      3 
      4 	<property name="base.dir" 			value="${path::get-full-path( project::get-base-directory() )}" />
      5 	<property name="sharedlibrary.dir" 	value="${base.dir}/Libraries" />
      6 	<property name="tools.dir" 			value="${base.dir}/Tools" />
      7 	<property name="tempdir" 			value="tempdir" />
      8 
      9 	<property name="version" 			value="3.1b1" />
     10 
     11 	<include buildfile="antlr3.runtime.net.common.inc" />
     12 
     13   	<!-- =================================================================== -->
     14   	<!-- Help on usage                                                       -->
     15   	<!-- =================================================================== -->
     16   	
     17   	<target name="usage">
     18     	<echo message="ANTLR v3 C# Runtime - Nant Build file"/>
     19     	<echo message="-------------------------------------------------------------"/>
     20     	<echo message=""/>
     21     	<echo message="available targets are:"/>
     22     	<echo message=""/>
     23     	<echo message="  build      - build debug or release version in '${base.dir}/build/${framework::get-target-framework()}'"/>
     24     	<echo message="                 (use -Ddebug=true or -Ddebug=false )"/>
     25     	<echo message=""/>
     26     	<echo message="  release    - build release version in '${base.dir}/build/${framework::get-target-framework()}'"/>
     27     	<echo message=""/>
     28     	<echo message="  dist       - build src/bin/docs distro in '${base.dir}'"/>
     29     	<echo message="                 (uses **pre-built** binaries.)"/>
     30     	<echo message=""/>
     31     	<echo message="  cleanall   - delete all the Nant and VS.NET build artifacts"/>
     32     	<echo message="  clean      - delete all the Nant build artifacts only"/>
     33     	<echo message=""/>
     34     	<echo message="  usage      - show this message (default)"/>
     35     	<echo message=""/>
     36     	<echo message="-------------------------------------------------------------"/>
     37   	</target>
     38 
     39 	<target name="build" 
     40 			depends="clean, init, build.v3.runtime, build.v3.utility, copytobuilddir"
     41 			description="Build debug or release version ( -Ddebug=true|false )"
     42 	/>
     43 
     44     <target name="release" depends="clean" description="Builds release (i.e. non-debug) version">
     45         <!-- build a clean release distribution for release -->
     46         <property name="debug" value="false"/>
     47         <call target="build"/>
     48     </target>
     49 
     50 	<target name="cleanall" depends="clean" description="Cleans all the Nant and VS.NET build artifacts">
     51 		<nant buildfile="Sources/Antlr3.Runtime/default.build" target="clean.vsnet" inheritall="true" />
     52 		<nant buildfile="Sources/Antlr3.Utility/default.build" target="clean.vsnet" inheritall="true" />
     53 	</target>
     54 	
     55 	<target name="dist" 
     56 			depends="releaseDocs, zipsource, zip11, zip20, zipdoc"
     57 			description="Creates src/bin/docs distros (uses pre-built binaries)"
     58 	/>
     59 	
     60 
     61 	<target name="clean" description="Cleans Nant build artifacts">
     62 		<delete dir="${build.working.dir}" failonerror="false" />
     63 		<delete dir="${build.dest.dir}"    failonerror="false" />
     64 		<!-- <delete dir="${doc.dir}"           failonerror="false" /> -->
     65 	</target>
     66 	
     67 	<target name="init">
     68 		<mkdir dir="${build.working.dir}" />
     69 		<mkdir dir="${build.dest.dir}" />
     70 		<call target="copy_build_dependencies" />
     71 	</target>
     72 	
     73 	<target name="copy_build_dependencies">
     74 		<copy todir="${build.dest.dir}">
     75 			<fileset basedir="${sharedlibrary.dir}/MbUnit">
     76 				<include name="MbUnit.Framework.dll" />
     77 				<include name="QuickGraph.Algorithms.dll" />
     78 				<include name="QuickGraph.dll" />
     79 			</fileset>
     80 		</copy>
     81 		<copy todir="${build.dest.dir}">
     82 			<fileset basedir="${sharedlibrary.dir}/StringTemplate.NET/${target.clr}">
     83 				<include name="StringTemplate.dll" />
     84 				<include name="antlr.runtime.dll" />
     85 			</fileset>
     86 		</copy>
     87 	</target>
     88 
     89 	<target name="build.v3.runtime" depends="init">
     90 		<nant buildfile="Sources/Antlr3.Runtime/default.build" target="build" inheritall="true" />
     91 	</target>
     92 	
     93 	<target name="build.v3.utility" depends="init">
     94 		<nant buildfile="Sources/Antlr3.Utility/default.build" target="build" inheritall="true" />
     95 	</target>
     96 	
     97 	<target name="copytobuilddir">
     98 		<copy todir="${build.dest.dir}">
     99 			<fileset basedir="${build.working.dir}">
    100 				<include name="Antlr3.Runtime.dll" />
    101 				<include name="Antlr3.Runtime.xml" />
    102 				<include name="Antlr3.Utility.dll" />
    103 				<include name="Antlr3.Utility.xml" />
    104 				<include name="StringTemplate.dll" />
    105 				<include name="antlr.runtime.dll" />
    106 				
    107 				<include name="Antlr3.Runtime.pdb" />
    108 				<include name="Antlr3.Utility.pdb" />
    109 				<include name="StringTemplate.pdb" />
    110 				<include name="antlr.runtime.pdb" />
    111 			</fileset>
    112 		</copy>
    113 	</target>
    114 	
    115 	<target name="zip11">
    116 		<zip zipfile="${base.dir}/Antlr3.C#.Runtime.v${version}.net-1.1.zip">
    117 			<fileset basedir="${base.dir}/build">
    118 				<include name="net-1.1/Antlr3.Runtime.dll" />
    119 				<include name="net-1.1/Antlr3.Utility.dll" />
    120 				<include name="net-1.1/StringTemplate.dll" />
    121 				<include name="net-1.1/antlr.runtime.dll" />
    122 			</fileset>
    123 			<fileset basedir="${base.dir}">
    124 				<include name="README.TXT" />
    125 				<include name="LICENSE.TXT" />
    126 				<include name="NOTICE.TXT" />
    127 				<include name="CHANGES.TXT" />
    128 			</fileset>
    129 			<fileset basedir="${base.dir}/docs">
    130 				<include name="Antlr3.Runtime.chm" />
    131 				<include name="Antlr3.Utility.chm" />
    132 			</fileset>
    133 		</zip>
    134 	</target>
    135 
    136 	<target name="zip20">
    137 		<zip zipfile="${base.dir}/Antlr3.C#.Runtime.v${version}.net-2.0.zip">
    138 			<fileset basedir="${base.dir}/build">
    139 				<include name="net-2.0/Antlr3.Runtime.dll" />
    140 				<include name="net-2.0/Antlr3.Utility.dll" />
    141 				<include name="net-2.0/StringTemplate.dll" />
    142 				<include name="net-2.0/antlr.runtime.dll" />
    143 			</fileset>
    144 			<fileset basedir="${base.dir}">
    145 				<include name="README.TXT" />
    146 				<include name="LICENSE.TXT" />
    147 				<include name="NOTICE.TXT" />
    148 				<include name="CHANGES.TXT" />
    149 			</fileset>
    150 			<fileset basedir="${base.dir}/docs">
    151 				<include name="Antlr3.Runtime.chm" />
    152 				<include name="Antlr3.Utility.chm" />
    153 			</fileset>
    154 		</zip>
    155 	</target>
    156 	
    157 	<target name="zipdoc">
    158 		<zip zipfile="${base.dir}/Antlr3.C#.Runtime.v${version}.api-doc.zip">
    159 			<fileset basedir="${base.dir}/docs">
    160 				<include name="Antlr3.Runtime.chm" />
    161 				<include name="Antlr3.Utility.chm" />
    162 			</fileset>
    163 		</zip>
    164 	</target>
    165 
    166 	<target name="zipsource">
    167 		<zip zipfile="${base.dir}/Antlr3.C#.Runtime.v${version}.src.zip">
    168 			<fileset basedir="${base.dir}">
    169 				<include name="**/*.build" />
    170 				<include name="**/*.xml" />
    171 				<include name="**/*.inc" />
    172 				<include name="**/*.sln" />
    173 				<include name="**/*.cs" />
    174 				<include name="**/*.csproj" />
    175 				<include name="**/*.resx" />
    176 				<include name="**/*.ico" />
    177 				<include name="**/*.html" />
    178 				<include name="**/*.jpg" />
    179 				<include name="**/*.pdf" />
    180 
    181 				<include name="${sharedlibrary.dir}/**/*.dll" />
    182 
    183 				<include name="${tools.dir}/**/*.dll" />
    184 				<include name="${tools.dir}/**/*.exe" />
    185 				
    186 				<include name="README.TXT" />
    187 				<include name="LICENSE.TXT" />
    188 				<include name="NOTICE.TXT" />
    189 				<include name="CHANGES.TXT" />
    190 
    191 				<exclude name="*.snk" />
    192 				<exclude name="**/obj/Debug/*.*" />
    193 				<exclude name="**/obj/Debug/net-1.1/*.*" />
    194 				<exclude name="**/obj/Debug/net-2.0/*.*" />
    195 				<exclude name="**/bin/Debug/*.*" />
    196 				<exclude name="**/bin/Debug/net-1.1/*.*" />
    197 				<exclude name="**/bin/Debug/net-2.0/*.*" />
    198 				<exclude name="**/bin/*.*" />
    199 				<exclude name="bin/**/*.*" />
    200 				<exclude name="build/**/*.*" />
    201 				<exclude name="**/*.user" />
    202 				<exclude name="**/*.resharperoptions" />
    203 				<exclude name="**/*.obj" />
    204 				<exclude name="**/*.pch" />
    205 				<exclude name="**/*.pdb" />
    206 				<exclude name="**/*.idb" />
    207 				<exclude name="**/*.log*" />
    208 				<exclude name="**/*.suo" />
    209 				<exclude name="**/*.bak" />
    210 				<exclude name="**/*.new" />
    211 				<exclude name="**/*.original" />
    212 			</fileset>
    213 		</zip>
    214 	</target>
    215 	
    216 	<!-- Documentation generation. -->
    217 	<property name="base.dir" value="." />
    218 	<property name="doc.dir" value="${base.dir}/docs" />
    219 	<property name="tempBin.dir" value="${doc.dir}/bin"/>
    220 	<property name="outputDocs.file" value="Antlr3.Runtime"/>
    221 	
    222 	<!-- Docs generation properties. -->
    223 	<property name="ShowMissing" value="false"/>
    224 	<property name="ShowPrivate" value="false"/>
    225 	<property name="OutputTarget" value="HTMLHelp"/>
    226 
    227 <!--		
    228 		description: 
    229 			Generates documentation with default properties.
    230 -->	
    231 	<target name="releaseDocs" depends="clean.docs">
    232 		<call target="copyFilesToDocument"/>
    233 		<call target="generateReleaseDocs"/>
    234 	</target>
    235 	
    236 <!--		
    237 		description: 
    238 			Generates documentation for developers, with all missing information indicated and private members visible.
    239 -->	
    240 	<target name="devDocs" depends="clean.docs">
    241 		<property name="ShowMissing" value="true"/>
    242 		<property name="ShowPrivate" value="true"/>
    243 		<property name="outputDocs.file" value="Antlr3.Runtime.Dev"/>
    244 		<call target="copyFilesToDocument"/>
    245 		<call target="generateReleaseDocs"/>
    246 	</target>
    247 		
    248 <!--		
    249 		description: 
    250 			 Generates documentation for release.
    251 -->	
    252 	<target name="generateReleaseDocs">
    253 		<ndoc failonerror="true">
    254 			<assemblies basedir="${tempBin.dir}">
    255 				<include name="Antlr3.Runtime.dll"/>
    256 				<include name="Antlr3.Utility.dll"/>
    257 			</assemblies>
    258 			<referencepaths>
    259 				<include name="Libraries/StringTemplate.NET/${framework::get-target-framework()}"/>
    260 			</referencepaths>
    261 			<documenters>
    262 				<documenter name="MSDN">
    263 					<property name="OutputTarget" value="${OutputTarget}" />
    264 					<property name="Preliminary" value="true" />
    265 					<property name="BinaryTOC" value="true" />
    266 					<property name="CleanIntermediates" value="true" />
    267 					<property name="SdkLinksOnWeb" value="true" />
    268 					
    269 					<property name="OutputDirectory" value="${doc.dir}" />
    270 					<property name="HtmlHelpName" value="${outputDocs.file}" />
    271 					<property name="IncludeFavorites" value="True" />
    272 					<property name="SplitTOCs" value="False" />
    273 					
    274 					<property name="Title" value="ANTLR v3 C# Runtime Library API documentation" />	
    275 					<property name="DefaulTOC" value="Antlr.Runtime" />
    276 					
    277 					<property name="ShowVisualBasic" value="True" />
    278 					<property name="ShowMissingSummaries" value="${ShowMissing}" />
    279 					<property name="ShowMissingRemarks" value="${ShowMissing}" />
    280 					<property name="ShowMissingParams" value="${ShowMissing}" />
    281 					<property name="ShowMissingReturns" value="${ShowMissing}" />
    282 					<property name="ShowMissingValues" value="${ShowMissing}" />
    283 					<property name="DocumentEmptyNamespaces" value="${ShowMissing}" />
    284 					
    285 					<property name="AutoPropertyBackerSummaries" value="true" />
    286 					<property name="AutoDocumentConstructors" value="true" />
    287 					<property name="DocumentProtected" value="True" />
    288 					<property name="DocumentInternals" value="${ShowPrivate}" />
    289 					<property name="DocumentPrivates" value="${ShowPrivate}" />
    290 					
    291 					<property name="IncludeAssemblyVersion" value="True" />
    292 					<property name="CopyrightText" value="Copyright 2005-2007 - Kunle Odutola" />
    293 					<property name="CopyrightHref" value="http://www.antlr.org" />
    294 				</documenter>
    295 			</documenters>
    296 		</ndoc>
    297 	</target>
    298 
    299 <!--		
    300 		description: 
    301 			Copies all files to be documented to a single location to speed up the documentation process.
    302 -->	
    303 	<target name="copyFilesToDocument">
    304 		<copy todir="${tempBin.dir}" flatten="true">
    305 			<fileset basedir="build/${target.clr}">
    306 				<include name="Antlr3.Runtime.dll"/>
    307 				<include name="Antlr3.Runtime.xml"/>
    308 				<include name="Antlr3.Utility.dll"/>
    309 				<include name="Antlr3.Utility.xml"/>
    310 			</fileset>
    311 		</copy>
    312 	</target>
    313 		
    314 <!--		
    315 		description: 
    316 			 Cleans up prior to documentation generation.
    317 -->	
    318 	<target name="clean.docs">
    319 		<delete>
    320 			<fileset>
    321 <!--
    322 				<include name="${doc.dir}/**"/>
    323 -->				
    324 				<exclude name="**/*.chm"/>
    325 			</fileset>
    326 		</delete>
    327 	</target>
    328 
    329 </project>
    330