<?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 name="Apache.NMS.MSMQ" default="default" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">

  <!-- ============================================================================================ -->
  <!--      I N I T I A L I Z A T I O N                                                             -->
  <!-- ============================================================================================ -->
  <property name="basedir" value="${project::get-base-directory()}"/>
  <property name="project.name" value="Apache.NMS.MSMQ"/>
  <property name="project.group" value="org.apache.activemq"/>
  <property name="project.version" value="1.1.0" unless="${property::exists('project.version')}"/>
  <property name="project.release.type" value="GA" unless="${property::exists('project.release.type')}" />
  <property name="project.short_description" value="Apache NMS for MSMQ Class Library"/>
  <property name="project.description" value="Apache NMS for MSMQ Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for MSMQ"/>

  <!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
  <property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true"/>
  <property name="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.dll" dynamic="true"/>
  <property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true"/>
  <property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true"/>
  <property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true"/>
  <property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true"/>

  <property name="NUnit.Projectfile" value="Apache.NMS.MSMQ.Test.nunit"/>

  <!-- Skip certain frameworks, since MSMQ is not supported on those platforms. -->
  <property name="build.netcf-2.0.skip" value="true"/>
  <property name="build.mono-2.0.skip" value="true"/>

  <target name="vendor-init" description="Initializes Vendor library from local repository.">
    <!-- Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
         'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
         well-known suffixes are used to access and copy down vendor file dependencies. -->
    <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org"/>

    <!-- Property grouping for 'vendor.apache.org' -->
    <property name="vendor.apache.org.name" value="Apache.NMS"/>
    <property name="vendor.apache.org.group" value="org.apache.activemq"/>
    <property name="vendor.apache.org.version" value="1.1.0"/>
    <property name="vendor.apache.org.filenames"
              value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.dll.mdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb,Apache.NMS.Test.dll.mdb" />

    <!-- Property grouping for 'vendor.nunit.org' -->
    <property name="vendor.nunit.org.name" value="NUnit"/>
    <property name="vendor.nunit.org.group" value="org.nunit"/>
    <property name="vendor.nunit.org.version" value="2.4.8"/>
    <property name="vendor.nunit.org.filenames"
              value="nunit.framework.dll,nunit.framework.extensions.dll" />
  </target>

  <target name="dependency-init" description="Initializes build dependencies">
    <if test="${not file::exists(Apache.NMS.dll)}">
	 <echo message="Apache.NMS assembly for ${current.build.framework.name} is not available. Build skipped." />
	 <property name="build.skip" value="true"/>
    </if>

  	<assemblyfileset failonempty="true" id="dependencies">
      <include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
      <include name="${Apache.NMS.dll}"/>
  	</assemblyfileset>

  	<assemblyfileset failonempty="true" id="test.dependencies">
      <include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
      <include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
      <include name="${Apache.NMS.dll}"/>
      <include name="${Apache.NMS.Test.dll}"/>
      <include name="${build.bin.dir}/${project.name}.dll"/>
      <include name="${nunit.dll}"/>
      <include name="${nunit.extensions.dll}"/>
  	</assemblyfileset>

    <fileset id="content.filenames">
      <include name="LICENSE.txt"/>
      <include name="NOTICE.txt"/>
      <include name="nmsprovider-*.config"/>
      <include name="${Apache.NMS.dll}"/>
      <include name="${Apache.NMS.pdb}"/>
      <include name="${Apache.NMS.Test.dll}"/>
      <include name="${Apache.NMS.Test.pdb}"/>
      <include name="${nunit.dll}"/>
      <include name="${nunit.extensions.dll}"/>
      <include name="${NUnit.Projectfile}"/>
    </fileset>

    <fileset id="install.filenames">
      <include name="LICENSE.txt"/>
      <include name="NOTICE.txt"/>
      <include name="${build.bin.dir}/${project.name}.dll"/>
      <include name="${build.bin.dir}/${project.name}.pdb"/>
      <include name="nmsprovider-msmq.config"/>
    </fileset>

    <fileset id="deploy.filenames">
      <include name="LICENSE.txt"/>
      <include name="NOTICE.txt"/>
      <include name="${build.bin.dir}/${project.name}.dll"/>
      <include name="${build.bin.dir}/${project.name}.pdb"/>
      <include name="${build.bin.dir}/${project.name}.xml"/>
      <include name="${build.bin.dir}/${project.name}.Test.dll"/>
      <include name="${build.bin.dir}/${project.name}.Test.pdb"/>
      <include name="${build.bin.dir}/${project.name}.Test.xml"/>
      <include name="${build.bin.dir}/nmsprovider-*.config"/>
    </fileset>
  </target>

  <target name="default" depends="install-all" />

  <!-- Load the common target definitions  -->
  <include buildfile="${basedir}/nant-common.xml"/>
</project>
