﻿<?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.
			-->
			<if test="${not directory::exists(local.repo.vendor.path)}">
				<echo message="Required dependent assemblies from ${vendor.name} for ${current.build.framework.name} are not available. Build skipped." />
				<property name="build.skip" value="true" />
			</if>

			<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)}" />
			</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="lib" if="${directory::exists('lib')}" />
		<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>
