Author: jgomes
Date: Thu Oct 30 16:23:17 2008
New Revision: 709288
URL: http://svn.apache.org/viewvc?rev=709288&view=rev
Log:
Implemented installing and downloading of assemblies to and from the local NAnt
repository.
Fixes [AMQNET-121]. (See https://issues.apache.org/activemq/browse/AMQNET-121)
Modified:
activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant-common.xml
activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq-test.csproj
activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj
Modified: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant-common.xml
URL:
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant-common.xml?rev=709288&r1=709287&r2=709288&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant-common.xml (original)
+++ activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant-common.xml Thu Oct 30
16:23:17 2008
@@ -18,13 +18,13 @@
<project xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
<!--
============================================================================================
-->
- <!-- I N I T I A L I Z A T I O N T A R G E T S
-->
+ <!-- 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 == 'release', '', '-' + project.release.type)}"
dynamic="true" />
+ <property name="project.version.full" value="${project.version +
if(project.release.type == 'snapshot', '-' + project.release.type, '')}"
dynamic="true" />
<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" />
@@ -35,9 +35,19 @@
<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="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"/>
+
+ <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')}"
@@ -59,60 +69,15 @@
<property name="nant.local.repo" value="${user.home}/.nant/repository"
unless="${property::exists('nant.local.repo')}"/>
- <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.remote.repo"
value="http://people.apache.org/~chirino/nant-repo"
- unless="${property::exists('nant.remote.repo')}"/>
-
- <!-- Nant Repo Tasks -->
- <target name="repo-download" description="Download a dependency from the
remote repo to the local repo">
- <fail message="The repo.task.artifact variable has not been set. Please
set it before you call this task."
unless="${property::exists('repo.task.artifact')}"/>
-
- <property name="repo.task.src"
value="${nant.remote.repo}/${repo.task.artifact}"/>
- <property name="repo.task.dest"
value="${nant.local.repo}/${repo.task.artifact}"/>
-
- <property name="repo.task.download" value="false"/>
- <if test="${not file::exists(repo.task.dest)}">
- <property name="repo.task.download" value="true"/>
- </if>
-
- <if test="${file::exists(repo.task.dest)}">
- <!-- TODO: we could also download if the file is a SNAPSHOT and is stale
-->
- <property name="repo.task.download" value="false"/>
- <echo message="Artifact: ${nant.remote.repo}/${repo.task.artifact} is up
to date."/>
- </if>
-
- <if test="${repo.task.download}">
- <echo message="Downloading artifact: ${repo.task.src}"/>
- <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
- <get src="${repo.task.src}" dest="${repo.task.dest}"/>
- </if>
- </target>
-
- <target name="repo-install" description="Install a dependency to the local
repo">
- <fail message="The repo.task.artifact variable has not been set. Please
set it before you call this task."
unless="${property::exists('repo.task.artifact')}"/>
- <fail message="The repo.task.src variable has not been set. Please set it
before you call this task." unless="${property::exists('repo.task.src')}"/>
-
- <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}"/>
- </target>
+ <!--
============================================================================================
-->
+ <!-- I N I T I A L I Z A T I O N T A R G E T S
-->
+ <!--
============================================================================================
-->
<target name="release-init" description="Initializes release build
properties">
<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}/activemq-dotnet.snk"
if="${not property::exists('snk.file')}"/>
- <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 activemq-dotnet.snk'. Then set the ACTIVEMQ_DOTNET_SNK
environment variable to the full pathname of the file." />
- </if>
- <property name="build.skip.release" value="true" />
- </if>
- <if test="${file::exists(snk.file)}">
- <property name="build.skip.release" value="false" />
- </if>
</target>
<target name="init" description="Initializes build properties">
@@ -128,10 +93,8 @@
<!-- 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"/>
- </if>
- <property name="build.skip" value="false" />
+ <call target="release-init"/>
+ <property name="build.skip" value="false"/>
</if>
<if test="${not framework::exists(current.build.framework)}">
<if test="${build.noskip}">
@@ -151,81 +114,106 @@
</if>
</if>
+ <property name="current.build.keysign"
value="${current.build.config=='release' and file::exists(snk.file) and
current.build.framework.sign}"/>
+ <property name="build.bin.dir"
value="${basedir}/build/${nant.settings.currentframework}/${current.build.config}"
/>
<if test="${not(build.skip)}">
- <property name="current.build.keysign"
value="${current.build.config=='release' and file::exists(snk.file) 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}"/>
- <call target="dependency-init"/>
</if>
+ <call target="dependency-init"/>
+ </target>
+
+ <!-- Generate assemblyinfo.cs files -->
+ <target name="generate-assemblyinfo" 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)
2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
+ <attribute type="AssemblyTrademarkAttribute" value="" />
+ <attribute type="AssemblyCultureAttribute" value="" />
+ <attribute type="AssemblyVersionAttribute"
value="${project.version}" />
+ <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 skiping builds">
- <property name="project.noskip" value="true" />
+ <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="csc.debug" value="true" />
- <property name="csc.optimize" value="false" />
+ <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" />
+ <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="true" />
- <property name="csc.optimize" value="true" />
+ <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" />
+ <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" />
+ <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" />
+ <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_0a" />
- <property name="link.sdkdoc.web" value="true" />
+ <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="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}" />
@@ -233,12 +221,12 @@
</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" />
+ <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>
@@ -247,54 +235,33 @@
<!--
============================================================================================
-->
<!-- C O M P I L E T A R G E T S
-->
<!--
============================================================================================
-->
+
<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.1-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-net-2.0-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-net-3.5-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-mono-2.0-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-netcf-2.0-framework-configuration"/><call
target="conditional-compile" />
-
- <call target="set-release-configuration" />
- <call target="set-net-1.1-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-net-2.0-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-net-3.5-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-mono-2.0-framework-configuration" /><call
target="conditional-compile" />
- <call target="set-netcf-2.0-framework-configuration"/><call
target="conditional-compile" />
+ <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="conditional-compile" depends="init" unless="${build.skip}"
+ <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" depends="compile-main,compile-test"
description="Compile everything"/>
+ <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"/>
- <asminfo output="src/main/csharp/CommonAssemblyInfo.cs" 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)
2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
- <attribute type="AssemblyTrademarkAttribute" value="" />
- <attribute type="AssemblyCultureAttribute" value="" />
- <attribute type="AssemblyVersionAttribute"
value="${project.version}" />
- <attribute type="AssemblyInformationalVersionAttribute"
value="${project.version}" />
- </attributes>
- </asminfo>
+ <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}"
@@ -325,34 +292,14 @@
<target name="compile-test" depends="compile-main" description="Build the
test library">
<echo message="Building the ${project.name}.Test library" />
- <asminfo output="src/test/csharp/CommonAssemblyInfo.cs" 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)
2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
- <attribute type="AssemblyTrademarkAttribute" value="" />
- <attribute type="AssemblyCultureAttribute" value="" />
- <attribute type="AssemblyVersionAttribute"
value="${project.version}" />
- <attribute type="AssemblyInformationalVersionAttribute"
value="${project.version}" />
- </attributes>
- </asminfo>
+ <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 -->
- <warning number="0618" /> <!-- do not report deprecation warnings -->
</nowarn>
<sources failonempty="true">
<include name="src/test/csharp/**.cs" />
@@ -364,7 +311,6 @@
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 -->
- <warning number="0618" /> <!-- do not report deprecation warnings -->
</nowarn>
<sources failonempty="true">
<include name="src/test/csharp/**.cs" />
@@ -391,31 +337,19 @@
<target name="install-all" depends="release-init" description="Install all
build configurations for all runtime configurations">
<echo message="Installing all build configurations for all runtime
configurations." />
- <call target="set-debug-configuration" />
- <call target="set-net-1.1-framework-configuration" /><call
target="conditional-install" />
- <call target="set-net-2.0-framework-configuration" /><call
target="conditional-install" />
- <call target="set-net-3.5-framework-configuration" /><call
target="conditional-install" />
- <call target="set-mono-2.0-framework-configuration" /><call
target="conditional-install" />
- <call target="set-netcf-2.0-framework-configuration"/><call
target="conditional-install" />
-
- <!-- 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.1-framework-configuration" /><call
target="conditional-install" />
- <call target="set-net-2.0-framework-configuration" /><call
target="conditional-install" />
- <call target="set-net-3.5-framework-configuration" /><call
target="conditional-install" />
- <call target="set-mono-2.0-framework-configuration" /><call
target="conditional-install" />
- <call target="set-netcf-2.0-framework-configuration"/><call
target="conditional-install" />
- </if>
- </target>
-
- <target name="conditional-install" depends="init" unless="${build.skip}"
- description="Conditionaly install all the modules if build framework and
type are supported">
- <call target="install" />
+ <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="compile" description="Install the artifacts
into the nant 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">
@@ -423,13 +357,62 @@
<items refid="install.filenames" />
</in>
<do>
- <property name="repo.task.artifact"
value="${path}/${install.filename}"/>
- <property name="repo.task.src"
value="${build.bin.dir}/${install.filename}"/>
+ <property name="repo.task.artifact"
value="${path}/${path::get-file-name(install.filename)}"/>
+ <property name="repo.task.src" value="${install.filename}"/>
<call target="repo-install"/>
</do>
</foreach>
</target>
+ <target name="repo-install" description="Install a dependency to the local
repo">
+ <fail message="The repo.task.artifact variable has not been set. Please
set it before you call this task."
unless="${property::exists('repo.task.artifact')}"/>
+ <fail message="The repo.task.src variable has not been set. Please set it
before you call this task." unless="${property::exists('repo.task.src')}"/>
+
+ <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}"/>
+ </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" depends="release-init"
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="${vendor.group}/${vendor.name}/${vendor.version}/${vendor.build.framework}/${vendor.build.config}"/>
+ <property name="vendor.repo"
value="vendor/${vendor.name}/${vendor.build.framework}" />
+
+ <foreach item="String" in="${vendor.filenames}" delim=","
property="repo.task.artifact">
+ <property name="repo.task.src"
value="${nant.local.repo}/${local.repo.vendor.path}/${repo.task.artifact}"/>
+ <property name="repo.task.dest"
value="${vendor.repo}/${repo.task.artifact}"/>
+
+ <if test="${file::exists(repo.task.src) and not
file::up-to-date(repo.task.src, repo.task.dest)}">
+ <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
+ <get src="${repo.task.src}" dest="${repo.task.dest}" />
+ </if>
+ </foreach>
+ </foreach>
+ </target>
+
<!--
============================================================================================
-->
<!-- D E P L O Y T A R G E T S
-->
<!--
============================================================================================
-->
@@ -438,11 +421,9 @@
<echo message="Deploying release configurations for all runtime
configurations." />
<call target="set-release-configuration" />
- <call target="set-net-1.1-framework-configuration" /><call
target="conditional-deploy" />
- <call target="set-net-2.0-framework-configuration" /><call
target="conditional-deploy" />
- <call target="set-net-3.5-framework-configuration" /><call
target="conditional-deploy" />
- <call target="set-mono-2.0-framework-configuration" /><call
target="conditional-deploy" />
- <call target="set-netcf-2.0-framework-configuration"/><call
target="conditional-deploy" />
+ <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">
@@ -453,16 +434,15 @@
</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>
- <target name="init-deploy">
- </target>
-
<!-- Deploy the modules to the global repo -->
- <target name="deploy" depends="init-deploy" description="Deploy the
artifacts into the nant 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">
Modified: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq-test.csproj
URL:
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq-test.csproj?rev=709288&r1=709287&r2=709288&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq-test.csproj
(original)
+++ activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq-test.csproj Thu
Oct 30 16:23:17 2008
@@ -38,6 +38,7 @@
<SccLocalPath>Svn</SccLocalPath>
<SccAuxPath>Svn</SccAuxPath>
<SccProvider>SubversionScc</SccProvider>
+ <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
">
<DebugSymbols>true</DebugSymbols>
@@ -112,4 +113,8 @@
</Content>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+ <PropertyGroup>
+ <PostBuildEvent>cd $(ProjectDir)
+nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>
+ </PropertyGroup>
</Project>
\ No newline at end of file
Modified: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj
URL:
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj?rev=709288&r1=709287&r2=709288&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj Thu Oct
30 16:23:17 2008
@@ -38,6 +38,7 @@
<SccLocalPath>Svn</SccLocalPath>
<SccAuxPath>Svn</SccAuxPath>
<SccProvider>SubversionScc</SccProvider>
+ <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
">
<DebugSymbols>true</DebugSymbols>
@@ -106,4 +107,10 @@
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+ <PropertyGroup>
+ <PreBuildEvent>cd $(ProjectDir)
+nant -nologo download-vendor -D:vendor.build.config=$(ConfigurationName)
-D:vendor.build.framework=net-2.0</PreBuildEvent>
+ <PostBuildEvent>cd $(ProjectDir)
+nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>
+ </PropertyGroup>
</Project>
\ No newline at end of file