activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r803984 - /activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml
Date Thu, 13 Aug 2009 18:44:57 GMT
Author: tabish
Date: Thu Aug 13 18:44:56 2009
New Revision: 803984

URL: http://svn.apache.org/viewvc?rev=803984&view=rev
Log:
reverting back to calling nunit-console, the key is that the user needs to ensure that the version that is called is the one in the NUnit 2.4.8 distribution and not the one supplied in the Mono distribution even though that one is also 2.4.8, its apparently broken.

Modified:
    activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml?rev=803984&r1=803983&r2=803984&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml Thu Aug 13 18:44:56 2009
@@ -1,658 +1,658 @@
-<?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-1.1,net-2.0,net-3.5,mono-2.0,netcf-2.0"/>
-  <property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true"/>
-
-  <if test="${build.skip.release}">
-    <property name="build.config.strings"  value="debug"/>
-  </if>
-  <if test="${not(build.skip.release)}">
-    <property name="build.config.strings"  value="debug,release"/>
-  </if>
-
-  <!-- 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>
-
-  <target name="generate-build-number">
-    <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>
-  </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="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-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, 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, conditional-compile, 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="vendor.build.config" value="release" />
-    <foreach item="String" in="${build.framework.strings}" delim="," property="vendor.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}/${vendor.build.framework}/${vendor.build.config}"/>
-      <property name="vendor.path" value="vendor/${vendor.name}/${vendor.build.framework}" />
-      <property name="lib.path" value="lib/${vendor.name}/${vendor.build.framework}" />
-
-      <!--
-           Update the LIB folder with the latest version of the file.  By default, the file from the
-           VENDOR folder will be used.  However, 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="vendor.task.src" value="${vendor.path}/${repo.task.artifact}"/>
-        <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(repo.task.src)}">
-          <copy file="${vendor.task.src}" tofile="${lib.task.dest}" if="${file::exists(vendor.task.src)}"/>
-        </if>
-      </foreach>
-    </foreach>
-  </target>
-
-  <!-- ============================================================================================ -->
-  <!--      D E P L O Y     T A R G E T S                                                           -->
-  <!-- ============================================================================================ -->
-
-  <target name="deploy-all" depends="generate-build-number" description="Deploy all build configurations for all runtime configurations">
-    <echo message="Deploying release configurations for all runtime configurations." />
-
-    <call target="set-release-configuration" />
-    <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-      <call target="deploy-target" />
-    </foreach>
-
-	<!-- Commit the deployed files to repository.  This completes the deployment. -->
-	<exec program="svn" failonerror="false">
-		<arg value="commit"/>
-		<arg value="deploy"/>
-		<arg value="-m"/>
-		<arg value="Deploy ${project.name} ${project.version.numeric}"/>
-	</exec>
-  </target>
-
-  <target name="deploy-target" depends="init, conditional-deploy"/>
-
-  <target name="conditional-deploy" depends="init" unless="${build.skip}"
-      description="Conditionaly deploy all the modules if build framework and type are supported">
-    <call target="deploy" />
-  </target>
-
-  <!-- Deploy the modules to the global repo -->
-  <target name="deploy" description="Deploy the artifacts into the subversion repo">
-    <property name="repo.dir" value="deploy/${current.build.framework}"/>
-
-    <foreach item="File" property="deploy.filename">
-      <in>
-        <items refid="deploy.filenames" />
-      </in>
-      <do>
-		<property name="repo.task.dest" value="${path::get-file-name(deploy.filename)}"/>
-		<copy file="${deploy.filename}" todir="${repo.dir}" unless="${file::up-to-date(deploy.filename, '${repo.dir}/${repo.task.dest}')}" />
-      </do>
-    </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-console2" 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>
+<?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-1.1,net-2.0,net-3.5,mono-2.0,netcf-2.0"/>
+  <property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true"/>
+
+  <if test="${build.skip.release}">
+    <property name="build.config.strings"  value="debug"/>
+  </if>
+  <if test="${not(build.skip.release)}">
+    <property name="build.config.strings"  value="debug,release"/>
+  </if>
+
+  <!-- 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>
+
+  <target name="generate-build-number">
+    <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>
+  </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="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-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, 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, conditional-compile, 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="vendor.build.config" value="release" />
+    <foreach item="String" in="${build.framework.strings}" delim="," property="vendor.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}/${vendor.build.framework}/${vendor.build.config}"/>
+      <property name="vendor.path" value="vendor/${vendor.name}/${vendor.build.framework}" />
+      <property name="lib.path" value="lib/${vendor.name}/${vendor.build.framework}" />
+
+      <!--
+           Update the LIB folder with the latest version of the file.  By default, the file from the
+           VENDOR folder will be used.  However, 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="vendor.task.src" value="${vendor.path}/${repo.task.artifact}"/>
+        <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(repo.task.src)}">
+          <copy file="${vendor.task.src}" tofile="${lib.task.dest}" if="${file::exists(vendor.task.src)}"/>
+        </if>
+      </foreach>
+    </foreach>
+  </target>
+
+  <!-- ============================================================================================ -->
+  <!--      D E P L O Y     T A R G E T S                                                           -->
+  <!-- ============================================================================================ -->
+
+  <target name="deploy-all" depends="generate-build-number" description="Deploy all build configurations for all runtime configurations">
+    <echo message="Deploying release configurations for all runtime configurations." />
+
+    <call target="set-release-configuration" />
+    <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
+      <call target="deploy-target" />
+    </foreach>
+
+	<!-- Commit the deployed files to repository.  This completes the deployment. -->
+	<exec program="svn" failonerror="false">
+		<arg value="commit"/>
+		<arg value="deploy"/>
+		<arg value="-m"/>
+		<arg value="Deploy ${project.name} ${project.version.numeric}"/>
+	</exec>
+  </target>
+
+  <target name="deploy-target" depends="init, conditional-deploy"/>
+
+  <target name="conditional-deploy" depends="init" unless="${build.skip}"
+      description="Conditionaly deploy all the modules if build framework and type are supported">
+    <call target="deploy" />
+  </target>
+
+  <!-- Deploy the modules to the global repo -->
+  <target name="deploy" description="Deploy the artifacts into the subversion repo">
+    <property name="repo.dir" value="deploy/${current.build.framework}"/>
+
+    <foreach item="File" property="deploy.filename">
+      <in>
+        <items refid="deploy.filenames" />
+      </in>
+      <do>
+		<property name="repo.task.dest" value="${path::get-file-name(deploy.filename)}"/>
+		<copy file="${deploy.filename}" todir="${repo.dir}" unless="${file::up-to-date(deploy.filename, '${repo.dir}/${repo.task.dest}')}" />
+      </do>
+    </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>



Mime
View raw message