﻿<?xml version="1.0"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<project xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">

	<!-- ============================================================================================ -->
	<!--    P R O P E R T Y    D E F I N I T I O N S                                                  -->
	<!-- ============================================================================================ -->

	<!-- global project settings -->
	<property name="project.cls.compliant"   value="true" unless="${property::exists('project.cls.compliant')}" />
	<property name="project.release.type"    value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
	<property name="project.version.full"    value="${project.version + if(project.release.type == 'snapshot', '-' + project.release.type, '')}" dynamic="true" />
	<property name="project.startyear"       value="2005" />
	<property name="build.dir"               value="${basedir}/build" />
	<property name="doc.dir"                 value="${build.dir}/doc" />
	<property name="lib.dir"                 value="${path::combine(basedir, 'lib')}" dynamic="true" />
	<property name="lib.family.dir"          value="${path::combine(lib.dir, framework::get-family(framework::get-target-framework()))}" dynamic="true" />
	<property name="lib.framework.dir"       value="${path::combine(lib.family.dir, version::to-string(framework::get-version(framework::get-target-framework())))}" dynamic="true" />

	<!-- default configuration -->
	<property name="build.defines"           value="" />
	<property name="build.noskip"            value="false" />
	<property name="build.skip"              value="false" />
	<property name="build.skip.release"      value="false" unless="${property::exists('build.skip.release')}" />
	<property name="compile.skip"            value="false" unless="${property::exists('compile.skip')}" />
	<property name="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}" overwrite="false" />
	<property name="current.build.framework" value="${framework::get-target-framework()}" overwrite="false" />
	<property name="current.build.defines"   value="${build.defines}" />
	<property name="build.framework.strings" value="net-2.0,net-3.5,mono-2.0,netcf-2.0" unless="${property::exists('build.framework.strings')}"/>
	<property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true" />

	<property name="build.config.strings"    value="${if(property::exists('configuration'), configuration, if(build.skip.release == 'true', 'debug', 'debug,release'))}" dynamic="true" />

	<!-- Figure out the user's HOME directory -->
	<property name="user.home" value="${environment::get-variable('HOME')}"
			if="${environment::variable-exists('HOME') and platform::is-unix()}"
			unless="${property::exists('user.home')}" />
	<property name="user.home" value="${environment::get-variable('USERPROFILE')}"
			if="${environment::variable-exists('USERPROFILE') and platform::is-windows()}"
			unless="${property::exists('user.home')}" />
	<fail message="The HOME environment variable is not defined.  Please set it to your home directory."
			unless="${property::exists('user.home')}" if="${platform::is-unix()}" />
	<fail message="The USERPROFILE environment variable is not defined.  Please set it to your home directory."
			unless="${property::exists('user.home')}" if="${platform::is-windows()}" />

	<!-- Figure out the NANT repositories -->
	<property name="nant.remote.repo" value="${environment::get-variable('NANT_REMOTE_REPO')}"
			if="${environment::variable-exists('NANT_REMOTE_REPO')}"
			unless="${property::exists('nant.remote.repo')}" />
	<property name="nant.local.repo" value="${environment::get-variable('NANT_REPO')}/local"
			if="${environment::variable-exists('NANT_REPO')}"
			unless="${property::exists('nant.local.repo')}" />
	<property name="nant.local.repo" value="${user.home}/.nant/repository/local"
			unless="${property::exists('nant.local.repo')}" />

	<!-- Figure out the keyfile location -->
	<property name="snk.file" value="${environment::get-variable('ACTIVEMQ_DOTNET_SNK')}"
			if="${environment::variable-exists('ACTIVEMQ_DOTNET_SNK')}"
			unless="${property::exists('snk.file')}" />
	<property name="snk.file" value="${basedir}/keyfile/NMSKey.snk"
			if="${not property::exists('snk.file')}" />

	<!-- ============================================================================================ -->
	<!--      I N I T I A L I Z A T I O N     T A R G E T S                                           -->
	<!-- ============================================================================================ -->

	<target name="init" description="Initializes build properties">
		<!-- enabled the release or debug configuration -->
		<call target="set-${current.build.config}-configuration" />

		<!-- Check to see if our build setup for the target framework -->
		<if test="${not(target::exists('set-'+current.build.framework+'-framework-configuration'))}">
			<fail message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
		</if>
		<call target="set-${current.build.framework}-framework-configuration" />

		<!-- Check to see current platform supports the target framework -->
		<if test="${framework::exists(current.build.framework)}">
			<property name="build.skip" value="false" />
		</if>
		<if test="${not framework::exists(current.build.framework)}">
			<if test="${build.noskip}">
				<fail message="${current.build.framework.name} is not available." />
			</if>
			<if test="${not(build.noskip)}">
				<echo message="${current.build.framework.name} is not available. Build skipped." />
				<property name="build.skip" value="true" />
			</if>
		</if>

		<!-- Check to see if we should skip this build framework. -->
		<if test="${not(build.skip)}">
			<if test="${property::exists('build.'+current.build.framework+'.skip')}">
				<property name="build.skip" value="true" />
				<echo message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
			</if>
		</if>

		<property name="current.build.keysign" value="${current.build.framework.sign}" />
		<property name="build.bin.dir" value="${build.dir}/${nant.settings.currentframework}/${current.build.config}" />
		<if test="${not(build.skip)}">
			<echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
			<mkdir dir="${build.bin.dir}" />
		</if>
		<call target="dependency-init" />
	</target>

	<!-- Generate four-digit build number -->
	<target name="generate-build-number">
		<if test="${not property::exists('project.version.numeric')}">
			<script language="C#">
				<imports>
					<import namespace="System.Globalization" />
					<import namespace="System.Threading" />
				</imports>
				<code>
					<!-- Format for assembly revision is the number of days from the year the project 'started', property project.startyear.  -->
					<![CDATA[
						public static void ScriptMain(Project project)
						{
							int startYear = Convert.ToInt32(project.Properties["project.startyear"]);
							DateTime start = new DateTime(startYear, 1, 1);
							TimeSpan ts = DateTime.Now - start;
							project.Properties["project.version.numeric"] = project.Properties["project.version"].ToString() + "." + ts.Days.ToString();
						}
					]]>
				</code>
			</script>
		</if>
	</target>

	<!-- Generate assemblyinfo.cs files -->
	<target name="generate-assemblyinfo" depends="generate-build-number" description="Generate the assembly info for the path in assemblyinfo.filename">
		<asminfo output="${assemblyinfo.filename}" language="CSharp">
			<imports>
				<import namespace="System" />
				<import namespace="System.Reflection" />
				<import namespace="System.Runtime.InteropServices" />
			</imports>
			<attributes>
				<attribute type="ComVisibleAttribute" value="false" />
				<attribute type="CLSCompliantAttribute" value="${project.cls.compliant}" />
				<attribute type="AssemblyTitleAttribute" value="${project.short_description}" />
				<attribute type="AssemblyDescriptionAttribute" value="${project.description}" />
				<attribute type="AssemblyConfigurationAttribute" value="${project.release.type}" />
				<attribute type="AssemblyCompanyAttribute" value="http://activemq.apache.org/nms" />
				<attribute type="AssemblyProductAttribute" value="${project.short_description}" />
				<attribute type="AssemblyCopyrightAttribute" value="Copyright (C) ${project.startyear}-${datetime::get-year(datetime::now())} Apache Software Foundation" />
				<attribute type="AssemblyTrademarkAttribute" value="" />
				<attribute type="AssemblyCultureAttribute" value="" />
				<attribute type="AssemblyVersionAttribute" value="${project.version.numeric}" />
				<attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
			</attributes>
		</asminfo>
	</target>

	<!-- ============================================================================================ -->
	<!--    C O N F I G U R A T I O N     T A R G E T S                                               -->
	<!-- ============================================================================================ -->

	<target name="set-noskip-configuration" description="Disable skipping builds">
		<property name="project.noskip" value="true" />
	</target>

	<target name="set-debug-configuration" description="Enabled 'debug' builds">
		<property name="current.build.config" value="debug" />
		<property name="current.build.config.debug" value="true" />
		<property name="current.build.config.release" value="false" />
		<property name="current.build.defines" value="${build.defines}DEBUG,TRACE," dynamic="true" />
		<property name="csc.debug" value="Full" />
		<property name="csc.optimize" value="false" />
	</target>

	<target name="set-release-configuration" description="Enabled 'release' builds">
		<property name="current.build.config" value="release" />
		<property name="current.build.config.release" value="true" />
		<property name="current.build.config.debug" value="false" />
		<property name="csc.debug" value="Full" />
		<property name="csc.optimize" value="true" />
	</target>

	<target name="set-net-1.1-framework-configuration">
		<property name="current.build.framework" value="net-1.1" />
		<property name="current.build.framework.name" value=".NET 1.1" />
		<property name="current.build.defines" value="${build.defines}NET,NET_1_1" dynamic="true" />
		<property name="current.build.framework.sign" value="false" />
		<property name="link.sdkdoc.version" value="SDK_v1_1" />
		<property name="link.sdkdoc.web" value="true" />
		<if test="${framework::exists(current.build.framework)}">
			<property name="nant.settings.currentframework" value="${current.build.framework}" />
		</if>
	</target>

	<target name="set-net-2.0-framework-configuration">
		<property name="current.build.framework" value="net-2.0" />
		<property name="current.build.framework.name" value=".NET 2.0" />
		<property name="current.build.defines" value="${build.defines}NET,NET_2_0" dynamic="true" />
		<property name="current.build.framework.sign" value="true" />
		<property name="link.sdkdoc.version" value="SDK_v2_0" />
		<property name="link.sdkdoc.web" value="true" />
		<if test="${framework::exists(current.build.framework)}">
			<property name="nant.settings.currentframework" value="${current.build.framework}" />
		</if>
	</target>

	<target name="set-net-3.5-framework-configuration">
		<property name="current.build.framework" value="net-3.5" />
		<property name="current.build.framework.name" value=".NET 3.5" />
		<property name="current.build.defines" value="${build.defines}NET,NET_2_0,NET_3_5" dynamic="true" />
		<property name="current.build.framework.sign" value="true" />
		<property name="link.sdkdoc.version" value="SDK_v6_1" />
		<property name="link.sdkdoc.web" value="true" />
		<if test="${framework::exists(current.build.framework)}">
			<property name="nant.settings.currentframework" value="${current.build.framework}" />
		</if>
	</target>

	<target name="set-netcf-2.0-framework-configuration">
		<property name="current.build.framework" value="netcf-2.0" />
		<property name="current.build.framework.name" value=".NET Compact Framework 2.0" />
		<property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_2_0" dynamic="true" />
		<property name="current.build.framework.sign" value="false" />
		<property name="link.sdkdoc.version" value="SDK_v1_1" />
		<property name="link.sdkdoc.web" value="true" />
		<if test="${framework::exists(current.build.framework)}">
			<property name="nant.settings.currentframework" value="${current.build.framework}" />
		</if>
	</target>

	<target name="set-mono-2.0-framework-configuration">
		<property name="current.build.framework" value="mono-2.0" />
		<property name="current.build.framework.name" value="Mono 2.0" />
		<property name="current.build.defines" value="${build.defines}MONO,MONO_2_0" dynamic="true" />
		<property name="current.build.framework.sign" value="true" />
		<property name="link.sdkdoc.version" value="SDK_v1_1" />
		<property name="link.sdkdoc.web" value="true" />
		<if test="${framework::exists(current.build.framework)}">
			<property name="nant.settings.currentframework" value="${current.build.framework}" />
		</if>
	</target>

	<!-- ============================================================================================ -->
	<!--     C O M P I L E    T A R G E T S                                                           -->
	<!-- ============================================================================================ -->

	<target name="compile-all" description="Compile all build configurations for all runtime configurations">
		<echo message="Compiling all build configurations for all runtime configurations." />
		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
			<foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
				<call target="compile-target" />
			</foreach>
		</foreach>
	</target>

	<target name="compile-target" depends="init, download-vendor, conditional-compile" />

	<target name="conditional-compile" depends="init" unless="${build.skip or compile.skip}"
			description="Conditionaly compiles all the modules if build framework and type are supported">
		<call target="compile" />
	</target>

	<target name="compile" description="Compile everything">
		<call target="compile-main" cascade="false" />
		<call target="compile-test" cascade="false" />
	</target>

	<target name="compile-main" depends="init" description="Build the main library">
		<echo message="Building the ${project.name} library" />
		<property name="assemblyinfo.filename" value="src/main/csharp/CommonAssemblyInfo.cs" />
		<call target="generate-assemblyinfo" />

		<csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
				output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
			<nowarn>
				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
			</nowarn>
			<sources failonempty="true">
				<include name="src/main/csharp/**.cs" />
			</sources>
			<references refid="dependencies" />
		</csc>
		<csc if="${not current.build.keysign}" target="library"
				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
				output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
			<nowarn>
				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
			</nowarn>
			<sources failonempty="true">
				<include name="src/main/csharp/**.cs" />
			</sources>
			<references refid="dependencies" />
		</csc>
		<call target="copy-content" />
	</target>

	<!-- Compile the nms-test module -->
	<target name="compile-test" depends="compile-main" description="Build the test library">
		<echo message="Building the ${project.name}.Test library" />
		<property name="assemblyinfo.filename" value="src/test/csharp/CommonAssemblyInfo.cs" />
		<call target="generate-assemblyinfo" />

		<csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
				output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
			<nowarn>
				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
			</nowarn>
			<sources failonempty="true">
				<include name="src/test/csharp/**.cs" />
			</sources>
			<references refid="test.dependencies" />
		</csc>
		<csc if="${not current.build.keysign}" target="library"
				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
				output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
			<nowarn>
				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
			</nowarn>
			<sources failonempty="true">
				<include name="src/test/csharp/**.cs" />
			</sources>
			<references refid="test.dependencies" />
		</csc>
		<call target="copy-content" />
	</target>

	<target name="copy-content">
		<foreach item="File" property="content.filename">
			<in>
				<items refid="content.filenames" />
			</in>
			<do>
				<copy todir="${build.bin.dir}" file="${content.filename}" if="${not file::up-to-date(content.filename, '${build.bin.dir}/${content.filename}')}" />
			</do>
		</foreach>
	</target>

	<!-- ============================================================================================ -->
	<!--      I N S T A L L     T A R G E T S                                                         -->
	<!-- ============================================================================================ -->

	<target name="install-all" description="Install all build configurations for all runtime configurations">
		<echo message="Installing all build configurations for all runtime configurations." />
		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
			<foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
				<call target="install" />
			</foreach>
		</foreach>
	</target>

	<!-- Install the modules to the local repo -->
	<target name="install" depends="init, compile-target, conditional-install"
			description="Install the artifacts into the nant repo" />

	<target name="conditional-install" unless="${build.skip}"
			description="Install the artifacts into the nant repo">
		<property name="path" value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}" />
		<foreach item="File" property="install.filename">
			<in>
				<items refid="install.filenames" />
			</in>
			<do>
				<property name="repo.task.artifact" value="${path}/${path::get-file-name(install.filename)}" />
				<property name="repo.task.src" value="${install.filename}" />
				<property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}" />
				<mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
				<copy file="${repo.task.src}" tofile="${repo.task.dest}" />
			</do>
		</foreach>
	</target>

	<!-- ============================================================================================ -->
	<!--      R E P O    D O W N L O A D     T A R G E T S                                            -->
	<!-- ============================================================================================ -->

	<target name="download-vendor-all" description="Download vendor files for all runtime configurations">
		<echo message="Downloading vendor files for all runtime configurations." />
		<property name="current.build.config" value="release" />
		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
			<call target="download-vendor" />
		</foreach>
	</target>

	<target name="download-vendor" depends="vendor-init, conditional-download"
				description="Download the vendor artifacts from the nant repo" />

	<target name="conditional-download" unless="${build.skip}"
				description="Download the artifacts from the nant repo">
		<!-- Iterate over the defined vendor filesets. -->
		<foreach item="String" in="${vendor.fileset.names}" delim="," property="current.vendor">
			<property name="vendor.name" value="${property::get-value(current.vendor + '.name')}" />
			<property name="vendor.group" value="${property::get-value(current.vendor + '.group')}" />
			<property name="vendor.version" value="${property::get-value(current.vendor + '.version')}" />
			<property name="vendor.filenames" value="${property::get-value(current.vendor + '.filenames')}" />
			<property name="local.repo.vendor.path" value="${nant.local.repo}/${vendor.group}/${vendor.name}/${vendor.version}/${current.build.framework}/${current.build.config}" />
			<property name="lib.path" value="lib/${vendor.name}/${current.build.framework}" />
			<!--
			Update the LIB folder with the latest version of the file.  If there is a newer version
			installed in the local repository, then that version will be copied into the LIB folder.
			-->
			<foreach item="String" in="${vendor.filenames}" delim="," property="repo.task.artifact">
				<property name="lib.task.dest" value="${lib.path}/${repo.task.artifact}" />
				<mkdir dir="${directory::get-parent-directory(lib.task.dest)}" />
				<property name="repo.task.src" value="${local.repo.vendor.path}/${repo.task.artifact}" />
				<copy file="${repo.task.src}" tofile="${lib.task.dest}" if="${file::exists(repo.task.src)}" />
				<if test="${not file::exists(lib.task.dest)}">
					<echo message="Required dependent assembly ${repo.task.artifact} from ${vendor.name} for ${current.build.framework.name} is not available. Build skipped." />
					<property name="build.skip" value="true" />
				</if>
			</foreach>
		</foreach>
	</target>

	<!-- ============================================================================================ -->
	<!--      T E S T     T A R G E T S                                                               -->
	<!-- ============================================================================================ -->

	<target name="test" depends="test-debug" description="Alias test target to test-debug" />

	<target name="test-all" depends="test-debug, test-release" description="Test all build configurations for all runtime configurations" />

	<target name="test-debug" depends="" description="Test debug build configurations for all runtime configurations">
		<property name="current.build.config" value="debug" />
		<call target="test-frameworks" />
	</target>

	<target name="test-release" depends="" description="Test release build configurations for all runtime configurations">
		<property name="current.build.config" value="release" />
		<call target="test-frameworks" />
	</target>

	<target name="test-frameworks">
		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
			<call target="init" />
			<if test="${not build.skip}">
				<exec program="nunit-console" failonerror="true" workingdir="build/${current.build.framework}/${current.build.config}">
					<arg value="${NUnit.Projectfile}" />
					<arg value="-labels" />
					<arg value="-xml=Nunit.TestOutput.xml" />
				</exec>
			</if>
		</foreach>
	</target>

	<!-- ============================================================================================ -->
	<!--      M I S C E L L A N E O U S    T A R G E T S                                              -->
	<!-- ============================================================================================ -->

	<target name="build" depends="default" description="Build the project." />

	<target name="rebuild" depends="clean,build" description="Rebuild the project." />

	<target name="clean" description="Deletes build">
		<if test="${target::exists('clean-init')}">
			<call target="clean-init" />
		</if>
		<delete dir="build" if="${directory::exists('build')}" />
		<delete dir="obj" if="${directory::exists('obj')}" />
		<delete dir="package" if="${directory::exists('package')}" />
	</target>

	<target name="doc" depends="build">
		<mkdir dir="${doc.dir}" />
		<ndoc failonerror="false">
			<assemblies basedir="${build.bin.dir}">
				<include name="${project.name}.dll" />
			</assemblies>
			<summaries basedir="${basedir}/src/main/ndoc">
				<include name="NamespaceSummary.xml" />
			</summaries>
			<documenters>
				<documenter name="MSDN">
					<property name="OutputDirectory" value="${doc.dir}" />
					<property name="HtmlHelpName" value="${project.name}" />
					<property name="HtmlHelpCompilerFilename" value="hhc.exe" />
					<property name="IncludeFavorites" value="False" />
					<property name="Title" value="${project.short_description}" />
					<property name="SplitTOCs" value="False" />
					<property name="DefaulTOC" value="" />
					<!--
					<property name="ShowVisualBasic" value="True" />
					<property name="ShowMissingSummaries" value="True" />
					<property name="ShowMissingRemarks" value="True" />
					<property name="ShowMissingParams" value="True" />
					<property name="ShowMissingReturns" value="True" />
					<property name="ShowMissingValues" value="True" />
					-->
					<property name="DocumentInternals" value="False" />
					<property name="DocumentProtected" value="True" />
					<property name="DocumentPrivates" value="False" />
					<property name="DocumentEmptyNamespaces" value="False" />
					<property name="IncludeAssemblyVersion" value="True" />
					<property name="CopyrightText" value="" />
					<property name="CopyrightHref" value="" />
				</documenter>
			</documenters>
		</ndoc>
	</target>

	<target name="sandcastle" depends="set-release-configuration, init, conditional-compile">
		<!-- Directories -->
		<property name="sandcastle.style" value="vs2005" unless="${property::exists('sandcastle.style')}" />
		<property name="documentation.dir" value="${build.bin.dir}" />
		<property name="bin.intern.dir" value="${build.bin.dir}" />
		<property name="bin.extern.dir" value="${basedir}\vendor\NUnit\net-2.0" />
		<property name="sandcastle.dir" value="${environment::get-variable('DXROOT')}" />
		<property name="sandcastle.workingdir" value="${build.dir}\doc\${sandcastle.style}" />
		<property name="sandcastle.output.dir" value="${sandcastle.workingdir}\Output" />

		<!-- Executables -->
		<property name="sandcastle.mrefbuilder.exe" value="${sandcastle.dir}\productiontools\mrefbuilder.exe" />
		<property name="sandcastle.buildassembler.exe" value="${sandcastle.dir}\productiontools\buildassembler.exe" />
		<property name="sandcastle.xsltransform.exe" value="${sandcastle.dir}\productiontools\xsltransform.exe" />
		<property name="sandcastle.productiontransforms.dir" value="${sandcastle.dir}\ProductionTransforms" />

		<!-- Create or Cleanup Working Directory -->
		<mkdir dir="${sandcastle.workingdir}"
				if="${not directory::exists(sandcastle.workingdir)}" />
		<delete>
			<fileset basedir="${sandcastle.workingdir}">
				<include name="**\*" />
			</fileset>
		</delete>

		<!-- Copy configuration file, and hard code references -->
		<copy file="${sandcastle.dir}/Presentation/${sandcastle.style}/Configuration/Sandcastle.config"
				tofile="${sandcastle.workingdir}/Sandcastle.config">
			<filterchain>
				<replacestring from="&quot;..\..\" to="&quot;${sandcastle.dir}\" />
				<replacestring from="&quot;..\" to="&quot;${sandcastle.dir}\Examples\" />
				<replacestring from="&quot;.\comments.xml" to="&quot;${documentation.dir}\${project.name}.xml" />
				<replacestring from="&quot;%DXROOT%\Presentation\${sandcastle.style}\content\feedback_content.xml&quot;" to="&quot;${basedir}/src/main/sandcastle/feedback_content.xml&quot;" />
			</filterchain>
		</copy>

		<!-- Run MRefBuilder (introspection on assemblies) to create basic Reflection XML -->
		<exec program="${sandcastle.mrefbuilder.exe}" workingdir="${sandcastle.workingdir}">
			<arg value="${bin.intern.dir}/${project.name}.dll" />
			<arg value="/out:reflection.int.xml" />
			<arg value="/dep:${bin.extern.dir}\*.dll" />
		</exec>

		<!-- Create Reflection XML -->
		<exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyVSDocModel.xsl&quot;" if="${sandcastle.style != 'prototype'}" />
			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyPrototypeDocModel.xsl&quot;" if="${sandcastle.style == 'prototype'}" />
			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddFriendlyFilenames.xsl&quot;" /> <!-- if="${sandcastle.style != 'prototype'}" /> -->
			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddGuidFilenames.xsl&quot;" if="${sandcastle.style == 'disabled'}" />
			<arg value="reflection.int.xml" />
			<arg value="/out:reflection.xml" />
			<arg value="/arg:IncludeAllMembersTopic=true" />
			<arg value="/arg:IncludeInheritedOverloadTopics=true" />
		</exec>

		<!-- Create Manifest (list of Topics) -->
		<exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ReflectionToManifest.xsl&quot;" />
			<arg value="reflection.xml" />
			<arg value="/out:manifest.xml" />
		</exec>

		<!-- Create Output Environment -->
		<mkdir dir="${sandcastle.output.dir}" />
		<mkdir dir="${sandcastle.output.dir}/html" />
		<copy todir="${sandcastle.output.dir}">
			<fileset basedir="${sandcastle.dir}/Presentation/${sandcastle.style}">
				<include name="icons/*" />
				<include name="media/*" />
				<include name="scripts/*" />
				<include name="styles/*" />
			</fileset>
		</copy>

		<!-- Run BuildAssembler (create html topic files) -->
		<exec program="${sandcastle.buildassembler.exe}" workingdir="${sandcastle.workingdir}">
			<arg value="/config:Sandcastle.config" />
			<arg value="manifest.xml" />
		</exec>
	</target>

	<target name="sandcastle-all" description="Generate all formats of the Sandcastle documentation files.">
		<foreach item="String" in="vs2005,prototype,hana" delim="," property="sandcastle.style">
			<call target="sandcastle" />
		</foreach>
	</target>
</project>
