Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

308 lines
9.4 KiB
XML

<?xml version="1.0"?>
<project>
<property name="project.base" value="${project::get-base-directory()}" />
<property name="samples.base" value="${path::get-full-path('../..')}" />
<!-- Duplicate the following if more levels are added -->te
<property name="samples.base" value="${path::get-full-path('../../..')}"
unless="${path::get-file-name(samples.base)=='samples'}" />
<property name="output.dir" value="${samples.base}/bin" />
<property name="nunit.bin.dir"
value="${path::combine(path::get-directory-name(samples.base), 'bin')}" />
<property name="nunit.framework.dll"
value="${path::combine(nunit.bin.dir,'net-1.1/framework/nunit.framework.dll')}" />
<property name="nunit.core.dll"
value="${path::combine(nunit.bin.dir,'net-1.1/nunit.core.dll')}" />
<property name="nunit.core.interfaces.dll"
value="${path::combine(nunit.bin.dir,'net-1.1/nunit.core.interfaces.dll')}" />
<property name="sample" value="${project::get-name()}"
unless="${property::exists('sample')}"/>
<property name="sample.dll" value="${sample}.dll" />
<property name="sample.type"
value="${path::get-file-name(path::get-directory-name(project.base))}" />
<property name="sample.type" value="addin" if="${sample.type=='Core'}" />
<if test="${directory::exists(path::combine(project.base, 'Tests'))}" >
<property name="tests" value="${sample}Tests"
unless="${property::exists('tests')}" />
<property name="test.dll" value="${tests}.dll" />
</if>
<property name="nunit.build" value="false"
unless="${property::exists('project.package.dir')}"/>
<property name="nunit.build" value="true"
if="${property::exists('project.package.dir')}"/>
<property name="build.debug" value="true"
unless="${property::exists('build.debug')}" />
<property name="build.config" value="Debug"
if="${build.debug}" />
<property name="build.config" value="Release"
unless="${build.debug}" />
<target name="clean" description="Remove files created by build">
<delete file="${output.dir}/${sample.dll}" />
<delete file="${output.dir}/${sample}.pdb" />
<if test="${property::exists('test.dll')}">
<delete file="${output.dir}/${test.dll}" />
<delete file="${output.dir}/${path::change-extension(test.dll, '.pdb')}" />
</if>
</target>
<target name="init">
<mkdir dir="${output.dir}" unless="${directory::exists(output.dir)}" />
<copy file="${nunit.framework.dll}" todir="${output.dir}"
if="${not nunit.build and file::exists(nunit.framework.dll)}" />
</target>
<target name="init-addin">
<mkdir dir="${output.dir}" unless="${directory::exists(output.dir)}" />
<copy file="${nunit.core.dll}" todir="${output.dir}"
if="${not nunit.build and file::exists(nunit.core.dll)}" />
<copy file="${nunit.core.interfaces.dll}" todir="${output.dir}"
if="${not nunit.build and file::exists(nunit.core.interfaces.dll)}" />
</target>
<target name="build" Description="Build the sample">
<call target="build-${sample.type}"/>
</target>
<target name="build-csharp" depends="init">
<csc target="library" output="${output.dir}/${sample.dll}" debug="${build.debug}">
<sources>
<patternset refid="source-files"/>
</sources>
<references basedir="${output.dir}">
<include name="nunit.framework.dll" />
</references>
</csc>
</target>
<target name="build-addin" depends="init-addin">
<csc target="library" output="${output.dir}/${sample}.dll" debug="${build.debug}">
<sources>
<patternset refid="source-files"/>
</sources>
<references basedir="${output.dir}">
<include name="nunit.core.interfaces.dll" />
<include name="nunit.core.dll" />
</references>
</csc>
<call target="build-addin-test" if="${property::exists('test.dll')}" />
</target>
<target name="build-addin-test">
<csc target="library" output="${output.dir}/${test.dll}" debug="${build.debug}">
<sources basedir="Tests">
<patternset refid="test-files"/>
</sources>
<references basedir="${output.dir}">
<include name="nunit.framework.dll" />
<include name="${sample}.dll" />
</references>
</csc>
</target>
<target name="build-vb" depends="init">
<vbc target="library"
output="${output.dir}/${sample.dll}" debug="${build.debug}">
<imports>
<import namespace="System"/>
<import namespace="System.Collections"/>
</imports>
<sources>
<patternset refid="source-files"/>
</sources>
<references basedir="${output.dir}">
<include name="System.dll" />
<include name="nunit.framework.dll" />
</references>
</vbc>
</target>
<target name="build-jsharp" depends="init">
<vjc target="library" output="${output.dir}/${sample.dll}" debug="${build.debug}">
<sources>
<patternset refid="source-files"/>
</sources>
<references basedir="${output.dir}">
<include name="nunit.framework.dll" />
</references>
</vjc>
</target>
<target name="build-managed" depends="init">
<readregistry property="vs.2003.path"
key="Software\Microsoft\VisualStudio\7.1\InstallDir"
hive="LocalMachine" failonerror="false"
unless="${property::exists( 'vs.2003.path' )}"/>
<fail message="VS 2003 must be installed to build this sample"
unless="${property::exists( 'vs.2003.path' )}"/>
<exec program="devenv.exe" basedir="${vs.2003.path}" workingdir="."
commandline="${sample}.vcproj /build ${build.config} /out ${output.dir}/${sample.dll}" />
</target>
<target name="build-cpp-cli" depends="init">
<readregistry property="vs.2005.path"
key="Software\Microsoft\VisualStudio\8.0\InstallDir"
hive="LocalMachine" failonerror="false"
unless="${property::exists( 'vs.2005.path' )}"/>
<fail message="VS 2005 must be installed to build this sample"
unless="${property::exists( 'vs.2005.path' )}"/>
<exec program="devenv.exe"
basedir="${vs.2005.path}" workingdir="."
commandline="${sample}.vcproj /build ${build.config} /out ${output.dir}/${sample.dll}"/>
</target>
<!-- ************************************************************* -->
<!-- Package targets are only used by the NUnit build script in -->
<!-- order to package the samples for distribution. -->
<!-- ************************************************************* -->
<target name="package">
<fail message="Can't use package target directly - it must be called from the NUnit build script."
unless="${nunit.build}"/>
<property name="sample.path"
value="${string::replace(project.base, samples.base, package.samples.dir)}" />
<call target="package-${sample.type}" />
</target>
<target name="package-csharp">
<property name="sample.proj" value="${sample}.csproj" />
<call target="copy-source-files" />
<call target="update-framework-ref" />
</target>
<target name="package-jsharp">
<property name="sample.proj" value="${sample}.vjsproj" />
<call target="copy-source-files" />
<call target="update-framework-ref" />
</target>
<target name="update-framework-ref">
<xmlpoke
file="${sample.path}/${sample.proj}"
xpath="/VisualStudioProject/*/Build/References/Reference[@Name='nunit.framework']/@HintPath"
value="..\..\..\bin\net-1.1\framework\nunit.framework.dll" />
</target>
<target name="package-vb">
<property name="sample.proj" value="${sample}.vbproj" />
<call target="copy-source-files" />
<call target="update-framework-ref" />
</target>
<target name="package-managed">
<property name="sample.proj" value="${sample}.vcproj" />
<call target="copy-source-files" />
<copy todir="${package.samples.dir}/cpp/managed/failures"
file="./cpp-managed-failures.vcproj">
<filterchain>
<replacestring from="$(SolutionDir)..\..\..\src\NUnitFramework\framework\bin\Debug\nunit.framework.dll"
to="..\..\..\..\bin\nunit.framework.dll"/>
</filterchain>
</copy>
</target>
<target name="package-cpp-cli">
<property name="sample.proj" value="${sample}.vcproj" />
<call target="copy-source-files" />
<xmlpoke
file="${sample.path}/${sample.proj}"
xpath="/VisualStudioProject/References/AssemblyReference[@AssemblyName='nunit.framework']/@RelativePath"
value="..\..\..\..\bin\net-2.0\framework\nunit.framework.dll" />
</target>
<target name="package-addin">
<property name="sample.proj" value="${sample}.csproj" />
<call target="copy-source-files" />
<call target="copy-test-files"
if="${property::exists('test.dll')}"/>
</target>
<target name="copy-source-files">
<copy todir="${sample.path}" includeemptydirs="false">
<fileset basedir=".">
<include name="${sample.proj}" />
<include name="${sample}.build" />
<include name="Readme.txt" />
<patternset refid="source-files" />
</fileset>
</copy>
</target>
<target name="copy-test-files">
<copy todir="${sample.path}/Tests" includeemptydirs="false">
<fileset basedir="Tests">
<include name="${sample}Tests.csproj" />
<include name="${sample}Tests.build" />
<patternset refid="test-files" />
</fileset>
</copy>
</target>
</project>