Slave Build File

      
<?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>