adl/test.build

165 lines
6.2 KiB
XML
Executable file

<?xml version="1.0" encoding="utf-8" ?>
<project name="ADL-Test-App" default="build"
xmlns="http://nant.sf.net/release/0.85-rc4/nant.xsd"
xmlns:nant="http://nant.sf.net/release/0.85-rc4/nant.xsd"
>
<property name="build.revision" value="$Revision: 1.5 $"/>
<property name="adl" value="."/>
<property name="adl-transforms" value="${adl}/transforms"/>
<property name="testapp" value="testapp"/>
<property name="rootns" value="Cygnet.ADL.TestApp"/>
<property name="entityns" value="${rootns}.Entities"/>
<property name="controllerns" value="${rootns}.Controllers"/>
<property name="controllers" value="testapp/Web/Controllers"/>
<property name="views" value="testapp/Web/Views" />
<property name="formcontroller" value="testapp/Web/Controllers/Form"/>
<property name="formview" value="testapp/Web/Views/Form"/>
<property name="bindir" value="testapp/Web/bin"/>
<property name="tmpdir" value="tmp"/>
<property name="adl-src" value="${testapp}/testapp.adl.xml" />
<property name="canonical" value="${tmpdir}/testapp.adl.xml" />
<property name="area-name" value="test"/>
<property name="nant-tasks" value="${tmpdir}/NantTasks.dll"/>
<property name="nant-contrib-dll" value="C:\Program Files\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll"/>
<target name="fetchtasks" depends="prepare"
description="fetches our NantTaks library from the well known place where it resides">
<get src="http://libs.cygnets.co.uk/NantTasks.dll" dest="${nant-tasks}"/>
</target>
<target name="canonicalise" description="generates adl for testapp entities">
<!-- adl2canonical.xslt -->
<style verbose="true" style="${adl-transforms}/adl2canonical.xslt"
in="${adl-src}"
out="${canonical}">
<parameters>
<parameter name="abstract-key-name-convention" value="Name_Id"/>
</parameters>
</style>
</target>
<target name="analyse">
<loadtasks assembly="${nant-contrib-dll}" />
<fxcop directOutputToConsole="true" projectFile="${testapp}/TestApp.fxcop">
</fxcop>
</target>
<target name="hbm" description="generates adl for testapp database NHibernate mapping"
depends="canonicalise">
<style verbose="true" style="${adl-transforms}/adl2hibernate.xslt"
in="${canonical}"
out="${tmpdir}/testapp.hbm.xml">
<parameters>
<parameter name="namespace" value="${entityns}"/>
<parameter name="assembly" value="${rootns}"/>
</parameters>
</style>
</target>
<target name="sql" description="Generates testapp database initialisation script"
depends="canonicalise">
<style verbose="true" style="${adl-transforms}/adl2mssql.xslt"
in="${canonical}"
out="${testapp}/testapp.auto.sql">
<parameters>
<parameter name="abstract-key-name-convention" value="Name_Id"/>
<parameter name="database" value="ADL_TestApp"/>
</parameters>
</style>
</target>
<target name="entities" description="creates C# classes for entities in the database"
depends="fetchtasks canonicalise">
<loadtasks assembly="${nant-tasks}" />
<style verbose="true" style="${adl-transforms}/adl2entityclass.xslt"
in="${canonical}"
out="${tmpdir}/classes.auto.cs">
<parameters>
<parameter name="locale" value="en-UK"/>
<parameter name="controllerns" value="${controllerns}"/>
<parameter name="entityns" value="${entityns}"/>
</parameters>
</style>
<exec program="c:\Program Files\astyle\bin\astyle.exe"
basedir="."
commandline="--style=java --indent=tab=4 --indent-namespaces ${tmpdir}/classes.auto.cs"/>
<split-regex in="${tmpdir}/classes.auto.cs"
destdir="${testapp}/Auto"
pattern="cut here: next file '([a-zA-Z0-9_.]*)'"/>
</target>
<target name="views" description="creates Velocity templates"
depends="fetchtasks canonicalise">
<loadtasks assembly="${nant-tasks}" />
<style verbose="true" style="${adl-transforms}/adl2views.xslt"
in="${canonical}"
out="${tmpdir}/views.auto.vm">
<parameters>
<parameter name="layout-name" value="default"/>
<parameter name="locale" value="en-UK"/>
<parameter name="controllerns" value="${controllerns}"/>
<parameter name="entityns" value="${entityns}"/>
<parameter name="generate-site-navigation" value="false"/>
<parameter name="permissions-group" value="partsbookeditors"/>
<parameter name="area-name" value="${area-name}"/>
<parameter name="show-messages" value="true"/>
</parameters>
</style>
<split-regex in="${tmpdir}/views.auto.vm"
destdir="${views}/Auto/${area-name}" pattern="cut here: next file '([a-zA-Z0-9_./]*)'"/>
</target>
<target name="controllers" description="creates C# controller classes" depends="fetchtasks canonicalise">
<loadtasks assembly="${nant-tasks}" />
<style verbose="true" style="${adl-transforms}/adl2controllerclasses.xslt"
in="${canonical}"
out="${tmpdir}/controllers.auto.cs">
<parameters>
<parameter name="locale" value="en-UK"/>
<parameter name="controllerns" value="${controllerns}"/>
<parameter name="entityns" value="${entityns}"/>
<parameter name="layout-name" value="default"/>
<parameter name="rescue-name" value="generalerror"/>
<parameter name="area-name" value="${area-name}"/>
</parameters>
</style>
<exec program="c:\Program Files\astyle\bin\astyle.exe"
basedir="."
commandline="--style=java --indent=tab=4 --indent-namespaces ${tmpdir}/controllers.auto.cs"/>
<split-regex in="${tmpdir}/controllers.auto.cs"
destdir="${controllers}/Auto" pattern="cut here: next file '([a-zA-Z0-9_.]*)'"/>
</target>
<target name="prepare" description="prepare directories used during the build">
<mkdir dir="${bindir}" failonerror="false"/>
<mkdir dir="${tmpdir}" failonerror="false"/>
</target>
<target name="clean" description="removes all products of the build process except the xml-ised database schema">
<delete>
<fileset>
<include name="**/*.auto.*"/>
</fileset>
</delete>
<delete failonerror="false" dir="${bindir}"/>
<delete failonerror="false" dir="${tmpdir}"/>
</target>
<target name="build" depends="prepare entities controllers views sql hbm"
description="compiles Visual Studio solution using msbuild">
<exec program="msbuild.exe"
basedir="c:\windows\microsoft.net\framework\v3.5\"
commandline="ADL.sln"/>
</target>
<target name="deploy" depends="clean build"/>
</project>