<?xml version="1.0"?>
<project
name="helloworld"
default="build">
<!-- global framework settings -->
<property
name="target.framework"
value="${framework::get-target-framework()}" />
<property
name="assembly.dir"
value="${framework::get-assembly-directory(target.framework)}" />
<!-- global project settings -->
<xmlpeek
file="../../HelloWorld.build"
xpath="/project/property[@name = 'project.version']/@value"
property="project.version" />
<property
name="assembly"
value="HelloWorld"/>
<property
name="build.dir"
value="../../build" />
<!-- default configuration -->
<property
name="project.config"
value="debug" /> <!-- debug|release -->
<!-- named configurations -->
<target
name="init"
description="Initializes build properties">
<call target="${project.config}" />
</target>
<target
name="debug"
description="configures a debug build">
<property
name="build.debug"
value="true" />
<property
name="package.name"
value="${nant.project.name}-${project.version}-${project.config}" />
</target>
<target
name="release"
description="configures a release build">
<property
name="project.config"
value="release" />
<property
name="build.debug"
value="false" />
<property
name="package.name"
value="${nant.project.name}-${project.version}" />
</target>
<!-- build tasks -->
<target
name="build"
depends="init"
description="Builds the binaries for the current configuration">
<echo message="Build Directory is ${build.dir}/${package.name}" />
<mkdir
dir="${build.dir}/${package.name}/bin"
failonerror="false" />
<csc
target="exe"
debug="${build.debug}"
output="${build.dir}/${package.name}/bin/${assembly}.exe">
<sources failonempty="true">
<include name="*.cs" />
</sources>
</csc>
</target>
<target
name="clean"
depends="init"
description="Deletes the current configuration">
<delete failonerror="false">
<fileset basedir="${build.dir}/${package.name}/bin">
<include name="${assembly}.exe" />
<include name="${assembly}.pdb" />
</fileset>
</delete>
</target>
<target
name="*"
description="Handles unknown targets">
<echo message="skip" />
</target>
</project>