﻿<?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,netcf-3.5" 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-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="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>

	<target name="set-netcf-3.5-framework-configuration">
		<property name="current.build.framework" value="netcf-3.5" />
		<property name="current.build.framework.name" value=".NET Compact Framework 3.5" />
		<property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_3_5" dynamic="true" />
		<property name="current.build.framework.sign" value="true" />
		<property name="link.sdkdoc.version" value="SDK_v3_5" />
		<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>
