Commit 3c7db16

unknown <mkhan@.arcresources.ca>
2009-07-21 19:02:47
adding build scripts
1 parent b3fff87
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 &quot;STATUS eq RUNNING&quot;"  />
+		<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%