﻿<?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.AMQP" 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.AMQP" />
    <property name="project.group"             value="org.apache.activemq" />
    <property name="project.version"           value="1.7.0" unless="${property::exists('project.version')}" />
    <property name="project.release.type"      value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
    <property name="project.short_description" value="Apache NMS for AMQP Class Library" />
    <property name="project.description"       value="Apache NMS for AMQP Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for AMQP using Apache QPID and Proton" />
	
	<!-- Native Qpid DLLs -->
    <property name="boost_chrono"              value="boost_chrono-${vcver}-mt${boostdebug}-1_47.dll"          dynamic="true" />
    <property name="boost_date_time"           value="boost_date_time-${vcver}-mt${boostdebug}-1_47.dll"       dynamic="true" />
    <property name="boost_program_options"     value="boost_program_options-${vcver}-mt${boostdebug}-1_47.dll" dynamic="true" />
    <property name="boost_system"              value="boost_system-${vcver}-mt${boostdebug}-1_47.dll"          dynamic="true" />
    <property name="boost_thread"              value="boost_thread-${vcver}-mt${boostdebug}-1_47.dll"          dynamic="true" />
    <property name="qpidclient"                value="qpidclient${debugsuffix}.dll"    dynamic="true" />
    <property name="qpidcommon"                value="qpidcommon${debugsuffix}.dll"    dynamic="true" />
    <property name="qpidmessaging"             value="qpidmessaging${debugsuffix}.dll" dynamic="true" />
    <property name="qpid-proton"               value="qpid-proton${debugsuffix}.dll"   dynamic="true" />
    <property name="qpidtypes"                 value="qpidtypes${debugsuffix}.dll"     dynamic="true" />

    <!-- 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="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="Apache.Qpid.dll"           value="${basedir}/lib/Apache.Qpid/${current.build.framework}/org.apache.qpid.messaging.dll" dynamic="true" />
    <property name="NUnit.Projectfile"         value="Apache.NMS.AMQP.Test.nunit" />

    <!-- Skip certain frameworks, since Apache Qpid is not supported on those platforms. -->
    <property name="build.netcf-2.0.skip" value="true" />
    <property name="build.netcf-3.5.skip" value="true" />
    <property name="build.mono-2.0.skip" value="true" />
    <property name="build.net-3.5.skip" value="true" />
    <property name="build.framework.strings" value="net-2.0,net-4.0"/>

    <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,vendor.qpid.apache.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.7.0" />
        <property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />

        <!-- 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.5.8" />
        <property name="vendor.nunit.org.filenames" value="nunit.framework.dll" />

        <!-- Property grouping for 'vendor.qpid.apache.org' -->
        <property name="vendor.qpid.apache.org.name"      value="Apache.Qpid" />
        <property name="vendor.qpid.apache.org.group"     value="org.apache.qpid" />
        <property name="vendor.qpid.apache.org.version"   value="0.27.0.16097" />
		<property name="vcver"                            value="${if(current.build.framework == 'net-4.0', 'vc100', 'vc90')}" />
		<property name="debugsuffix"                      value="${if(project.release.type == 'release', '', 'd')}" />
		<property name="boostdebug"                       value="${if(project.release.type == 'release', '', '-gd')}" />
		<echo message="Vendor-init current.build.framework = ${current.build.framework}, project.release.type = ${project.release.type}" />
		<echo message="vcver = ${vcver}, debugsuffix = ${debugsuffix}, boostdebug = ${boostdebug}" />
		 
        <property name="vendor.qpid.apache.org.filenames" value="org.apache.qpid.messaging.dll,${boost_chrono},${boost_date_time},${boost_program_options},${boost_system},${boost_thread},${qpidclient},${qpidcommon},${qpidmessaging},${qpid-proton},${qpidtypes}" dynamic="true"/>
    </target>

    <target name="dependency-init" description="Initializes build dependencies">
        <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="${Apache.NMS.dll}" />
			<include name="${Apache.Qpid.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="${Apache.NMS.dll}" />
            <include name="${Apache.NMS.Test.dll}" />
			<include name="${Apache.Qpid.dll}" />
            <include name="${build.bin.dir}/${project.name}.dll" />
            <include name="${nunit.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="${Apache.Qpid.dll}" />
            <include name="${nunit.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" />
        </fileset>

    </target>

    <target name="default" depends="install-all" />

    <zipfileset id="src.package.contents" basedir="${basedir}">
        <include name="LICENSE.txt" />
        <include name="NOTICE.txt" />
        <include name="nant-common.xml" />
        <include name="nant.build" />
        <include name="nant.build" />
        <include name="nmsprovider*.config" />
        <include name="vs2008-*.csproj" />
        <include name="vs2008-*.csproj" />
        <include name="vs2008-*.sln" />
        <include name="keyfile/*" />
        <include name="src/**/*.cs" />
        <exclude name="src/sandbox/**" />
    </zipfileset>

    <zipfileset id="bin.package.contents" basedir="${basedir}">
        <include name="LICENSE.txt" />
        <include name="NOTICE.txt" />
        <include name="build/**/nmsprovider*" />
        <include name="build/**/${project.name}*" />
        <include name="lib/**/*" />
        <exclude name="build/**/%temp%/**" />
    </zipfileset>

    <!-- Load the common target definitions  -->
    <include buildfile="${basedir}/nant-common.xml" />
</project>
