Commit 3c7db16
Changed files (5)
build/local.properties.xml.template
@@ -0,0 +1,13 @@
+<project name="local.properties">
+ <property name="debug" value="false" />
+ <property name="log.level" value="DEBUG"/>
+ <property name="assembly.title" value="Gorilla.MVC" />
+ <property name="assembly.description" value="" />
+ <property name="assembly.company" value="http://mokhan.ca" />
+ <property name="assembly.version" value="${datetime::get-year(datetime::now())}.${datetime::get-month(datetime::now())}.${datetime::get-day(datetime::now())}.${datetime::get-hour(datetime::now())}${datetime::get-minute(datetime::now())}" />
+ <property name="editor.exe" value="notepad.exe" />
+
+ <property name="dot.net.sdk.dir" value="C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin" />
+ <property name="framework.dir" value="c:\windows\microsoft.net\framework\v3.5" />
+
+</project>
build/project.build
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8" ?>
+ <project name="gorilla.mvc">
+ <property name="project.name" value="${project::get-name()}" />
+
+ <property name="base.dir" value="${directory::get-parent-directory(project::get-base-directory())}" />
+ <property name="product.dir" value="${base.dir}\product" />
+
+ <property name="build.dir" value="${base.dir}\build" />
+ <property name="thirdparty.dir" value="${base.dir}\thirdparty" />
+
+ <property name="build.tools.dir" value="${build.dir}\tools" />
+ <property name="build.lib.dir" value="${build.dir}\lib" />
+ <property name="build.resources.dir" value="${build.dir}\resources" />
+ <property name="build.icons.dir" value="${build.resources.dir}\icons" />
+ <property name="build.config.dir" value="${build.dir}\config" />
+ <property name="build.compile.dir" value="${build.dir}\compile" />
+ <property name="build.artifacts.dir" value="${build.dir}\artifacts" />
+
+ <property name="app.output" value="${project.name}.dll" />
+
+ <include buildfile="project.test.build" />
+ <include buildfile="project.test.reports.build" />
+ <include buildfile="project.deploy.build" />
+ <include buildfile="project.install.build" />
+ <include buildfile="project.ci.build" />
+ <include buildfile="local.properties.xml" />
+
+ <target name="clean">
+ <exec program="taskkill.exe" commandline="/f /im ${editor.exe} /FI "STATUS eq RUNNING"" />
+ <delete dir="${build.compile.dir}" />
+ </target>
+
+ <target name="init" depends="clean">
+ <mkdir dir="${build.compile.dir}" />
+ </target>
+
+ <target name="app.compile" depends="init">
+ <csc output="${build.compile.dir}\${app.output}" debug="${debug}" target="library" win32icon="${build.icons.dir}\mokhan.ico" keyfile="${build.config.dir}\mokhan.snk">
+ <sources>
+ <include name="${product.dir}\**\*.cs" />
+ <include name="${build.config.dir}\**\*.cs" />
+ <exclude name="${product.dir}\**\AssemblyInfo.cs" />
+ <exclude name="${product.dir}\**\*Specs.cs" />
+ </sources>
+ <references>
+ <include name="${build.lib.dir}\**\*.dll" />
+ <include name="${build.artifacts.dir}\**\*.dll" />
+ </references>
+ <resources dynamicprefix="true">
+ <include name="${product.dir}\**\*.resx" />
+ </resources>
+ <resources>
+ <include name="${build.lib.dir}\app\*.licenses" />
+ </resources>
+ <arg value="/nowin32manifest" />
+ </csc>
+ </target>
+
+ <target name="expand.template.file">
+ <copy file="${target}.template" tofile="${target}" overwrite="true">
+ <filterchain>
+ <replacetokens>
+ <token key="log.level" value="${log.level}" />
+ <token key="assembly.title" value="${assembly.title}" />
+ <token key="assembly.description" value="${assembly.description}" />
+ <token key="assembly.company" value="${assembly.company}" />
+ <token key="assembly.version" value="${assembly.version}" />
+ </replacetokens>
+ </filterchain>
+ </copy>
+ </target>
+
+</project>
build/project.test.build
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<project name="project.test">
+ <property name="test.output" value="${project.name}.test.dll" />
+ <property name="xunit.cons.exe" value="${build.tools.dir}\gallio\gallio.echo.exe" />
+
+ <fileset id="test.references.fileset">
+ <include name="${build.lib.dir}\**\*.dll" />
+ <exclude name="${build.lib.dir}\app\sql.server.compact\**\*.dll" />
+ <include name="${build.lib.dir}\app\sql.server.compact\**\System.Data.SqlServerCe.dll" />
+ </fileset>
+
+ <target name="test.compile" depends="init, test.copy.dependencies">
+ <csc output="${build.compile.dir}\${test.output}" target="library" debug="${debug}">
+ <sources basedir="${product.dir}">
+ <include name="**\*.cs" />
+ </sources>
+ <references refid="test.references.fileset"/>
+ </csc>
+ </target>
+
+ <target name="test.copy.dependencies">
+ <copy todir="${build.compile.dir}" flatten="true">
+ <fileset basedir="${build.lib.dir}">
+ <include name="\**\*.dll" />
+ </fileset>
+ </copy>
+ <copy todir="${build.compile.dir}" flatten="false">
+ <fileset basedir="${build.resources.dir}">
+ <include name="\**\*.*" />
+ </fileset>
+ </copy>
+ <property name="target" value="${log4net.config}" />
+ <call target="expand.template.file" />
+ <copy file="${log4net.config}" tofile="${build.compile.dir}\log4net.config.xml" />
+ </target>
+
+ <target name="run.test" depends="test.compile">
+ <exec
+ program="${xunit.cons.exe}"
+ workingdir="${build.compile.dir}"
+ commandline="${xunit.arguments}" />
+ </target>
+
+ <target name="test">
+ <property name="xunit.arguments" value="${build.compile.dir}/${test.output} /sr /rt:text /rd:${build.compile.dir}" />
+ <call target="run.test" />
+ </target>
+
+ <target name="test.html">
+ <property name="xunit.arguments" value="${build.compile.dir}/${test.output} /sr /rt:html /rd:${build.compile.dir}" />
+ <call target="run.test" />
+ </target>
+
+</project>
build/project.test.reports.build
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<project name="project.test.reports">
+ <property name="bdd.doc.exe" value="${build.tools.dir}\bdd.doc\bdddoc.console.exe" />
+ <property name="report.output.file" value="${build.compile.dir}\test.report.html" />
+
+ <target name="bdd.doc" depends="test.compile">
+ <property name="arguments" value="${build.compile.dir}\${test.output} observation ${report.output.file}" />
+ <exec program="${bdd.doc.exe}"
+ commandline="${arguments}"
+ />
+ <exec program="${browser.exe}" commandline="${report.output.file}" />
+ </target>
+
+</project>
build.bat
@@ -0,0 +1,4 @@
+@echo off
+cls
+thirdparty\tools\nant\nant.exe -nologo -buildfile:build\project.build %*
+@echo %time%