Author: chirino
Date: Wed Feb 28 14:22:46 2007
New Revision: 513012

URL: http://svn.apache.org/viewvc?view=rev&rev=513012
Log:
Updated nant build so that it compiles under all the frameworks available on 
your plaform.  Also added support to sign the release builds.


Modified:
    activemq/activemq-dotnet/trunk/nant.build

Modified: activemq/activemq-dotnet/trunk/nant.build
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/trunk/nant.build?view=diff&rev=513012&r1=513011&r2=513012
==============================================================================
--- activemq/activemq-dotnet/trunk/nant.build (original)
+++ activemq/activemq-dotnet/trunk/nant.build Wed Feb 28 14:22:46 2007
@@ -15,8 +15,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<project name="activemq-dotnet" default="build" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
-  <echo message="Using '${framework::get-target-framework()}' framework on 
'${platform::get-name()}' platform." />
+<project name="activemq-dotnet" default="compile-all" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
 
   <!-- 
============================================================================================
 -->
   <!--      I N I T I A L I Z A T I O N                                        
                     -->
@@ -37,97 +36,215 @@
   <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="project.config"        value="debug" /><!-- debug|release -->
-  <property name="build.defines"         value="" />
-  <property name="current.build.defines" value="${build.defines}" />
-
-  <!-- Named project configurations (used by self-test and self-doc tasks) -->
-  <target name="debug" description="Perform a 'debug' build">
-    <property name="project.config"      value="debug" />
-    <property name="build.debug"         value="true" />
-  </target>
-
-  <target name="release" description="Perform a 'release' build">
-    <property name="project.config"      value="release" />
-    <property name="build.debug"         value="false" />
-  </target>
-
-  <!-- Framework support targets -->
-  <target name="set-framework-configuration">
-    <if 
test="${not(target::exists('set-'+framework::get-target-framework()+'-framework-configuration'))}">
-      <fail message="The '${framework::get-target-framework()}' framework is 
not supported by this version of ActiveMQ .NET" />
-    </if>
-    <call 
target="set-${framework::get-target-framework()}-framework-configuration" />
+  <property name="build.defines"           value=""/>
+  <property name="build.noskip"            value="false"/>
+  <property name="build.skip"              value="false"/>
+  <property name="current.build.config"    value="${if(project.release.type == 
'release', 'release', 'debug')}"/>
+  <property name="current.build.framework" 
value="${framework::get-target-framework()}"/>
+  <property name="current.build.defines"   value="${build.defines}" />
+
+  <!-- Helper targets used to enable build configurations -->
+  <target name="set-noskip-configuration" description="Disable skiping 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="csc.debug"                    value="true" />
+  </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="true" />
   </target>
+  
   <target name="set-net-1.0-framework-configuration">
-    <property name="nant.settings.currentframework" value="net-1.0" />
+    <property name="current.build.framework" value="net-1.0" />
+    <property name="current.build.framework.name" value=".NET 1.0"/>
     <property name="current.build.defines" value="${build.defines}NET,NET_1_0" 
dynamic="true" />
+    <property name="current.build.framework.sign" value="true" />
     <property name="link.sdkdoc.version" value="SDK_v1_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-1.1-framework-configuration">
-    <property name="nant.settings.currentframework" value="net-1.1" />
+    <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="nant.settings.currentframework" value="net-2.0" />
+    <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_v1_1" />
     <property name="link.sdkdoc.web" value="true" />
+    <if test="${framework::exists(current.build.framework)}">
+      <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+    </if>
   </target>
   <target name="set-netcf-1.0-framework-configuration">
-    <property name="nant.settings.currentframework" value="netcf-1.0" />
-    <property name="current.build.defines" 
value="${build.defines}NETCF,NETCF_1_0" dynamic="true" />
+    <property name="current.build.framework" value="netcf-1.0" />
+    <property name="current.build.framework.name" value=".NET Compact 
Framework 1.0"/>
+    <property name="current.build.defines" 
value="${build.defines}PocketPC,NETCF,NETCF_1_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-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-1.0-framework-configuration">
-    <property name="nant.settings.currentframework" value="mono-1.0" />
+    <property name="current.build.framework" value="mono-1.0" />
+    <property name="current.build.framework.name" value="Mono 1.0"/>
     <property name="current.build.defines" 
value="${build.defines}MONO,MONO_1_0" dynamic="true" />
+    <property name="current.build.framework.sign" value="true" />
     <property name="link.sdkdoc.version" value="SDK_v1_1" />
     <property name="link.sdkdoc.web" value="true" />
+    <if test="${framework::exists(current.build.framework)}">
+      <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+    </if>
   </target>
   <target name="set-mono-2.0-framework-configuration">
-    <property name="nant.settings.currentframework" value="mono-2.0" />
+    <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>
   <target name="set-sscli-1.0-framework-configuration">
-    <property name="nant.settings.currentframework" value="sscli-1.0" />
+    <property name="current.build.framework" value="sscli-1.0" />
+    <property name="current.build.framework.name" value="sscli 1.0"/>
     <property name="current.build.defines" 
value="${build.defines}SSCLI,SSCLI_1_0" dynamic="true" />
+    <property name="current.build.framework.sign" value="false" />
     <property name="link.sdkdoc.version" value="SDK_v1_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="init" description="Initializes build properties">
-    <call target="${project.config}"/>
-    <call target="set-framework-configuration"/>
+  <!-- 
============================================================================================
 -->
+  <!--      T H E      M A I N      B U I L D      T A R G E T S               
                     -->
+  <!-- 
============================================================================================
 -->
 
-    <property name="build.bin.dir" 
value="${basedir}/build/${project.config}/bin" />
+  <target name="compile-all" depends="release-init" description="Compile all 
build configurations for all runtime configurations">
+    <echo message="Compiling all build configurations for all runtime 
configurations." />
+    <call target="set-debug-configuration" />
+    <call target="set-net-1.0-framework-configuration"  /><call 
target="conditional-compile" />
+    <call target="set-net-2.0-framework-configuration"  /><call 
target="conditional-compile" />
+    <call target="set-mono-1.0-framework-configuration" /><call 
target="conditional-compile" />
+    <call target="set-mono-2.0-framework-configuration" /><call 
target="conditional-compile" />
+    <call target="set-netcf-1.0-framework-configuration"/><call 
target="conditional-compile" />
+    <call target="set-netcf-2.0-framework-configuration"/><call 
target="conditional-compile" />
+
+    <!-- we can only do a release skip if the Key file is available -->
+    <if test="${not build.skip.release}">
+      <call target="set-release-configuration" />
+      <call target="set-net-1.0-framework-configuration"  /><call 
target="conditional-compile" />
+      <call target="set-net-2.0-framework-configuration"  /><call 
target="conditional-compile" />
+      <call target="set-mono-1.0-framework-configuration" /><call 
target="conditional-compile" />
+      <call target="set-mono-2.0-framework-configuration" /><call 
target="conditional-compile" />
+      <call target="set-netcf-1.0-framework-configuration"/><call 
target="conditional-compile" />
+      <call target="set-netcf-2.0-framework-configuration"/><call 
target="conditional-compile" />
+    </if>
 
-    <echo message="Initializing ${build.bin.dir}" />
-    <mkdir dir="${build.bin.dir}"/>
   </target>
 
-  <!-- 
============================================================================================
 -->
-  <!--      T H E      M A I N      B U I L D      T A R G E T S               
                     -->
-  <!-- 
============================================================================================
 -->
+  <target name="release-init" description="Initializes release build 
properties">
+    <property name="snk.file"  value="${basedir}/activemq-dotnet.snk" />
+    <if test="${not file::exists(snk.file)}">
+      <if test="${build.noskip}">
+       <fail message="Release key file not found. You can generate a key file 
by running 'sn -k ${snk.file}'." />
+      </if>
+      <if test="${not(build.noskip)}">
+        <echo message="Release key file not found. You can generate a key file 
by running 'sn -k ${snk.file}'." />
+        <echo message="The Release build will be skipped." />
+        <property name="build.skip.release" value="true"/>
+      </if>
+    </if>
+    <if test="${file::exists(snk.file)}">
+      <property name="build.skip.release" value="false" />
+    </if>
+  </target>
+
+  <target name="conditional-compile" depends="init" unless="${build.skip}"
+         description="Conditionaly compiles all the modules if build framework 
and type are supported">
+    <call target="compile" />
+  </target>
 
-  <target name="build"
+  <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)}">
+       <!-- Make sure that the activemq-dotnet.snk exists for release builds 
-->
+       <if test="${current.build.config.release}">
+        <call target="release-init"/>
+        <property name="build.skip" value="${build.skip.release}" />
+       </if>
+       <if test="${not current.build.config.release}">
+         <property name="build.skip" value="false" />
+       </if>
+    </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>
+
+    <if test="${not(build.skip)}">
+       <property name="current.build.keysign" 
value="${current.build.config=='release' and current.build.framework.sign}"/>
+       <echo message="Doing ${if(current.build.keysign,'a signed','an 
unsigned')} ${current.build.config} build for the 
${current.build.framework.name} framework" />
+       <property name="build.bin.dir" 
value="${basedir}/build/${nant.settings.currentframework}/${current.build.config}"
 />
+       <mkdir dir="${build.bin.dir}"/>
+    </if>
+
+  </target>
+
+  <target name="compile"
           
depends="build-nms,build-nms-test,build-activemq,build-activemq-test,build-stomp-test,build-msmq-on-windows,build-msmq-test"
-          description="Build everything"/>
+         description="Build everything"/>        
 
   <!-- Compile the nms module -->
   <target name="build-nms" depends="init" description="Build the NMS library">
-
-    <echo message="Building the NMS library" />
-
-    <echo>Creating build dir ${build.bin.dir}</echo>
-    <mkdir dir="${build.bin.dir}"/>
-    
+    <echo message="Building the NMS library"/>
 
     <attrib file="src/main/csharp/NMS/CommonAssemblyInfo.cs" readonly="false" 
if="${file::exists('src/main/csharp/NMS/CommonAssemblyInfo.cs')}" />
     <asminfo output="src/main/csharp/NMS/CommonAssemblyInfo.cs" 
language="CSharp">
@@ -152,23 +269,46 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.dll" doc="${build.bin.dir}/NMS.xml">
       <nowarn>
-        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+       <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->  
+       <warning number="0618" /> <!-- do not report deprecation warnings -->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/main/csharp/NMS/*.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.dll" doc="${build.bin.dir}/NMS.xml">
+      <nowarn>
+       <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->  
+       <warning number="0618" /> <!-- do not report deprecation warnings -->
       </nowarn>
       <sources failonempty="true">
         <include name="src/main/csharp/NMS/*.cs" />
       </sources>
-      <!--
-      <resources basedir="src/main/resources">
-        <include name="**/*" />
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
       </resources>
-      -->
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
       </references>
     </csc>
+
+
   </target>
 
   <!-- Compile the nms-test module -->
@@ -198,7 +338,28 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.Test.dll" 
doc="${build.bin.dir}/NMS.Test.xml">
+      <nowarn>
+        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+      </nowarn>
+      <sources failonempty="true">
+             <include name="src/test/csharp/NMS/Test/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+        <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
+        <include name="${build.bin.dir}/NMS.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.Test.dll" 
doc="${build.bin.dir}/NMS.Test.xml">
       <nowarn>
         <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
@@ -206,7 +367,12 @@
       <sources failonempty="true">
              <include name="src/test/csharp/NMS/Test/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
         <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
         <include name="${build.bin.dir}/NMS.dll"/>
@@ -241,7 +407,28 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.ActiveMQ.dll" 
doc="${build.bin.dir}/NMS.ActiveMQ.xml">
+      <nowarn>
+        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/main/csharp/ActiveMQ/**.cs" />
+        <include name="src/main/csharp/Stomp/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+        <include name="${build.bin.dir}/NMS.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.ActiveMQ.dll" 
doc="${build.bin.dir}/NMS.ActiveMQ.xml">
       <nowarn>
         <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
@@ -250,7 +437,12 @@
         <include name="src/main/csharp/ActiveMQ/**.cs" />
         <include name="src/main/csharp/Stomp/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
         <include name="${build.bin.dir}/NMS.dll"/>
       </references>
@@ -284,7 +476,8 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.ActiveMQ.Test.dll" 
doc="${build.bin.dir}/NMS.ActiveMQ.Test.xml">
       <nowarn>
         <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
@@ -292,7 +485,34 @@
       <sources failonempty="true">
         <include name="src/test/csharp/ActiveMQ/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+        <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
+        <include name="${build.bin.dir}/NMS.dll"/>
+        <include name="${build.bin.dir}/NMS.Test.dll"/>
+        <include name="${build.bin.dir}/NMS.ActiveMQ.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.ActiveMQ.Test.dll" 
doc="${build.bin.dir}/NMS.ActiveMQ.Test.xml">
+      <nowarn>
+        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/test/csharp/ActiveMQ/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
         <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
         <include name="${build.bin.dir}/NMS.dll"/>
@@ -329,15 +549,45 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.Stomp.Test.dll" 
doc="${build.bin.dir}/NMS.Stomp.Test.xml">
       <nowarn>
-        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/test/csharp/Stomp/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+        <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
+        <include name="${build.bin.dir}/NMS.dll"/>
+        <include name="${build.bin.dir}/NMS.Test.dll"/>
+        <include name="${build.bin.dir}/NMS.ActiveMQ.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.Stomp.Test.dll" 
doc="${build.bin.dir}/NMS.Stomp.Test.xml">
+      <nowarn>
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
       </nowarn>
       <sources failonempty="true">
         <include name="src/test/csharp/Stomp/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
         <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
         <include name="${build.bin.dir}/NMS.dll"/>
@@ -347,7 +597,7 @@
     </csc>
   </target>
 
-  <target name="build-msmq-on-windows" depends="init,build-nms" 
description="Build the NMS.MSMQ library" if="${platform::is-win32()}">
+  <target name="build-msmq-on-windows" depends="init,build-nms" 
description="Build the NMS.MSMQ library" if="${platform::is-win32() and 
framework::get-target-framework()!='netcf-2.0'}">
        <call target="build-msmq" />
   </target>
   
@@ -379,15 +629,46 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.MSMQ.dll" 
doc="${build.bin.dir}/NMS.MSMQ.xml">
       <nowarn>
-        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/main/csharp/MSMQ/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+               <!-- TODO was using the following - I wonder if it now breaks 
on windows?
+        <include name="${lib.framework.dir}/System.Messaging.dll" />
+               -->
+        <include name="System.Messaging.dll" />
+        <include name="${build.bin.dir}/NMS.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.MSMQ.dll" 
doc="${build.bin.dir}/NMS.MSMQ.xml">
+      <nowarn>
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
       </nowarn>
       <sources failonempty="true">
         <include name="src/main/csharp/MSMQ/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
                <!-- TODO was using the following - I wonder if it now breaks 
on windows?
         <include name="${lib.framework.dir}/System.Messaging.dll" />
@@ -399,7 +680,7 @@
   </target>
 
   <!-- Compile the msmq.Test module -->
-  <target name="build-msmq-test" 
depends="init,build-nms,build-nms-test,build-msmq-on-windows" 
description="Build the NMS.MSMQ.Test library" if="${platform::is-win32()}">
+  <target name="build-msmq-test" 
depends="init,build-nms,build-nms-test,build-msmq-on-windows" 
description="Build the NMS.MSMQ.Test library" if="${platform::is-win32() and 
framework::get-target-framework()!='netcf-2.0'}">
     <echo message="Building the NMS.MSMQ.Test library" />
 
     <attrib file="src/test/csharp/MSMQ/CommonAssemblyInfo.cs" readonly="false" 
if="${file::exists('src/test/csharp/MSMQ/CommonAssemblyInfo.cs')}" />
@@ -425,15 +706,49 @@
       </attributes>
     </asminfo>
 
-    <csc target="library" define="${current.build.defines}" 
warnaserror="false" debug="${build.debug}"
+    <csc if="${current.build.keysign}" keyfile="activemq-dotnet.snk" 
target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
       output="${build.bin.dir}/NMS.MSMQ.Test.dll" 
doc="${build.bin.dir}/NMS.MSMQ.Test.xml">
       <nowarn>
-        <warning number="1591" /> <!-- do not report warnings for missing XML 
comments -->        <warning number="0618" /> <!-- do not report deprecation 
warnings -->
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
+      </nowarn>
+      <sources failonempty="true">
+        <include name="src/test/csharp/MSMQ/**.cs" />
+      </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
+      <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
+        <include name="System.dll" asis="true"/>
+               <!-- TODO was using the following - I wonder if it now breaks 
on windows?
+        <include name="${lib.framework.dir}/System.Messaging.dll" />
+               -->
+        <include name="System.Messaging.dll" />
+        <include name="${lib.dir}/all/nunit/nunit.framework.dll"/>
+        <include name="${build.bin.dir}/NMS.dll"/>
+        <include name="${build.bin.dir}/NMS.Test.dll"/>
+        <include name="${build.bin.dir}/NMS.MSMQ.dll"/>
+      </references>
+    </csc>
+    <csc if="${not current.build.keysign}" target="library" 
+      define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}"
+      output="${build.bin.dir}/NMS.MSMQ.Test.dll" 
doc="${build.bin.dir}/NMS.MSMQ.Test.xml">
+      <nowarn>
+             <warning number="1591" /> <!-- do not report warnings for missing 
XML comments -->        
+             <warning number="0618" /> <!-- do not report deprecation warnings 
-->
       </nowarn>
       <sources failonempty="true">
         <include name="src/test/csharp/MSMQ/**.cs" />
       </sources>
+      <resources failonempty="true">
+        <include name="NOTICE.txt" />
+        <include name="LICENSE.txt" />
+      </resources>
       <references failonempty="true">
+        <include name="mscorlib.dll" asis="true"/>
         <include name="System.dll" asis="true"/>
                <!-- TODO was using the following - I wonder if it now breaks 
on windows?
         <include name="${lib.framework.dir}/System.Messaging.dll" />
@@ -478,7 +793,6 @@
 
   <target name="clean" depends="init" description="Deletes build">
     <delete dir="build" if="${directory::exists('build')}" />
-    <mkdir dir="build"/>
   </target>
 
   <target name="doc" depends="build-activemq">
@@ -558,5 +872,6 @@
     </ndoc>
 
   </target>
+  
 
 </project>


Reply via email to