<?xml version="1.0"?>
<project name="common"
	default="build"
	xmlns="http://nant.sf.net/release/0.85/nant.xsd">
  <property name="build.output.dir" value="${root.dir}\output" />
  <property name="build.dir" value="${root.dir}\build" />
  <property name="lib.dir" value="${root.dir}\build\references" />
  <property name="build.debug" value="true" overwrite="false"/>
  <property name="build.optimize" value="true"/>
  <property name="build.rebuild" value="true"/>
  <property name="build.warnaserror" value="false"/>
  
  <target name="display-current-build-info">
    <echo message=""/>
    <echo message="----------------------------------------------------------" />
    <echo message=" ${framework::get-description(framework::get-target-framework())}" />
    <echo message="----------------------------------------------------------" />
    <echo message="" />
    <echo message="framework : ${framework::get-target-framework()}" />
    <echo message="description : ${framework::get-description(framework::get-target-framework())}" />
    <echo message="sdk directory : ${framework::get-sdk-directory(framework::get-target-framework())}" />
    <echo message="framework directory : ${framework::get-framework-directory(framework::get-target-framework())}" />
    <echo message="assembly directory : ${framework::get-assembly-directory(framework::get-target-framework())}" />
    <echo message="runtime engine : ${framework::get-runtime-engine(framework::get-target-framework())}" />
    <echo message="" />
    <echo message="----------------------------------------------------------" />
    <echo message="Current Build Settings"/>
    <echo message="----------------------------------------------------------" />
    <echo message="build.debug=${build.debug}"/>
    <echo message="build.rebuild=${build.rebuild}"/>
    <echo message="build.optimize=${build.optimize}"/>
    <echo message="lib.dir=${lib.dir}"/>
    <echo message="build.output.dir=${build.output.dir}" />
    <echo message="build.dir=${build.dir}"/>
    <echo message=""/>
  </target>

  <target name="cleanup" if="${directory::exists(build.output.dir)}">
    <!-- do any folder clean up before we start -->
    <delete dir="${build.output.dir}" failonerror="false"/>
  </target>

  <target name="common.init">
    <fileset id="project.sources.cs">
      <include name="**/*.cs" />
    </fileset>
    <fileset id="project.sources.vb">
      <include name="**/*.vb" />
    </fileset>
    <mkdir dir="${build.output.dir}" if="${ not directory::exists(build.output.dir)}"/>
  </target>

  <target name="common.compile.dll.cs">
    <csc
        target="library" 
        debug="${build.debug}" 
        optimize="${build.optimize}"
        warnaserror="${build.warnaserror}"
        output="${build.output.dir}/${project::get-name()}.dll" 
        doc="${build.output.dir}/${project::get-name()}.xml"
        rebuild="${build.rebuild}"
    >
      <nowarn>
        <warning number="1591" /> <!-- No XML comment for publicly visible member -->
      </nowarn>
      <sources refid="project.sources.cs" />
      <references refid="project.references" />
      <resources refid="project.resources" />
    </csc>
  </target>
  <target name="common.compile.exe.cs">
    <csc
        target="exe" 
        debug="${build.debug}" 
        optimize="${build.optimize}"
        warnaserror="${build.warnaserror}"
        output="${build.output.dir}/${project::get-name()}.exe" 
        doc="${build.output.dir}/${project::get-name()}.xml"
        rebuild="${build.rebuild}"
    >
      <nowarn>
        <warning number="1591" /> <!-- No XML comment for publicly visible member -->
      </nowarn>
      <sources refid="project.sources.cs" />
      <references refid="project.references" />
      <resources refid="project.resources" />
    </csc>
  </target>
  <target name="common.compile.dll.forweb.cs">
    <csc
        target="library" 
        debug="${build.debug}" 
        optimize="${build.optimize}"
        warnaserror="${build.warnaserror}"
        output="${build.output.dir}/${project::get-name()}.dll" 
        doc="${build.output.dir}/${project::get-name()}.xml"
        rebuild="${build.rebuild}"
    >
      <nowarn>
        <warning number="1591" /> <!-- No XML comment for publicly visible member -->
      </nowarn>
      <sources refid="project.sources.cs" />
      <references refid="project.references" />
      <resources refid="project.resources" />
    </csc>
  </target>
</project>