diff options
Diffstat (limited to 'dotnet/default.build')
-rw-r--r-- | dotnet/default.build | 482 |
1 files changed, 252 insertions, 230 deletions
diff --git a/dotnet/default.build b/dotnet/default.build index 52a67ff638..bfd6ada094 100644 --- a/dotnet/default.build +++ b/dotnet/default.build @@ -1,230 +1,252 @@ -<?xml version="1.0"?>
-<project name="Qpid.NET" default="build">
-
- <!-- Determines the formatter to use to format output of test results. -->
- <property name="nant.formatter" value="Plain" />
-
- <!-- Determines whether a 'debug' or 'release' build is to be done. Defaults to 'debug' -->
- <property name="build.config" value="debug" />
-
- <!-- Sets build properties consistently accross all assemblies in the project. -->
- <property name="build.version.major" value="2"/>
- <property name="build.version.minor" value="1"/>
- <property name="build.version.build" value="0"/>
- <property name="build.version.revision" value="0"/>
- <property name="build.company" value="Apache Software Foundation"/>
- <property name="build.copyright" value="Apache Software Foundation"/>
- <property name="build.description" value="Built from svn revision number: "/>
-
- <!-- Fileset with build files for each 'core' assembly. -->
- <fileset id="src.builds">
- <include name="Qpid.Buffer/default.build" />
- <include name="Qpid.Sasl/default.build" />
- <include name="Qpid.Messaging/default.build" />
- <include name="Qpid.Codec/default.build" />
- <include name="Qpid.Common/default.build" />
- <include name="Qpid.Client/default.build" />
- </fileset>
-
- <!-- Fileset with build files for 'pure unit' test assemblies. -->
- <fileset id="tests.pure.builds">
- <include name="Qpid.Buffer.Tests/default.build" />
- <include name="Qpid.Sasl.Tests/default.build" />
- <include name="Qpid.Common.Tests/default.build" />
- <include name="Qpid.Client.Tests/default.build" />
- </fileset>
-
- <!-- Fileset with build files for 'integration' test assemblies. -->
- <fileset id="tests.integration.builds">
- <include name="Qpid.Integration.Tests/default.build" />
- </fileset>
-
- <!-- Other test or utility assemblies. -->
- <fileset id='other.builds'>
- <include name="TopicListener/default.build" />
- <include name="TopicPublisher/default.build" />
- <include name="TestClient/default.build" />
- </fileset>
-
- <!-- Prepare environment for a debug build. -->
- <target name="debug">
- <property name="build.debug" value="true" />
- <property name="build.defines" value="DEBUG;TRACE"/>
- </target>
-
- <!-- Prepare environment for a release build. -->
- <target name="release">
- <property name="build.debug" value="false" />
- <property name="build.defines" value=""/>
- </target>
-
- <!-- Prepare environment for build. -->
- <target name="init">
- <property name="base.dir" value="${project::get-base-directory()}" />
- <property name="build.dir" value="${base.dir}/bin/${framework::get-target-framework()}/${build.config}" />
- <call target="${build.config}" />
- </target>
-
- <!-- Cleans up the build output directory. -->
- <target name="clean" depends="init">
- <delete dir="${build.dir}" failonerror="false" />
- </target>
-
- <!-- Runs 'svnversion' to get the repository revision into the build property 'build.svnversion'. -->
- <target name="svnversion" description="Runs svnversion to get the current repository version into a build script property.">
- <exec program="svnversion" output="svnversion_tmp.txt">
- <arg value="-n"/>
- </exec>
-
- <loadfile file="svnversion_tmp.txt" property="build.svnversion"/>
- <delete file="svnversion_tmp.txt"/>
-
- <!-- For some competely retarted reason the '-n' parameter to svnversion doesn't really work under windows...
- Here is some code to strip the unwanted newlines. -->
- <script language="C#">
- <code><![CDATA[
- public static void ScriptMain(Project project)
- {
- project.Properties["build.svnversion"] = project.Properties["build.svnversion"].Trim("\n\r".ToCharArray());
- }
- ]]>
- </code>
- </script>
-
- </target>
-
- <!-- Performs a regex find-and-replace on assembly info files, substituting fields defined as build properties. -->
- <target name="setversion" description="Stamp the version info onto assemblyinfo.cs files" depends="svnversion">
-
- <echo>build.svnversion = ${build.svnversion}</echo>
-
- <foreach item="File" property="filename">
- <in>
- <items basedir=".">
- <include name="**\AssemblyInfo.cs"></include>
- </items>
- </in>
- <do>
- <script language="C#">
- <code><![CDATA[
- public static void ScriptMain(Project project)
- {
- // Read in the entire file to perform the substitution in.
- StreamReader reader = new StreamReader(project.Properties["filename"]);
- string contents = reader.ReadToEnd();
- reader.Close();
-
- // Substitute the version numbers.
- string replacement = string.Format("[assembly: AssemblyVersion(\"{0}.{1}.{2}.{3}\")]",
- project.Properties["build.version.major"],
- project.Properties["build.version.minor"],
- project.Properties["build.version.build"],
- project.Properties["build.version.revision"]);
- contents = Regex.Replace(contents, @"\[assembly: AssemblyVersion\("".*""\)\]", replacement);
-
- // Substitute the company name and copyright.
- replacement = string.Format("[assembly: AssemblyCompany(\"{0}\")]",
- project.Properties["build.company"]);
- contents = Regex.Replace(contents, @"\[assembly: AssemblyCompany\("".*""\)\]", replacement);
-
- replacement = string.Format("[assembly: AssemblyCopyright(\"{0}\")]",
- project.Properties["build.copyright"]);
- contents = Regex.Replace(contents, @"\[assembly: AssemblyCopyright\("".*""\)\]", replacement);
-
- // Update the description.
- //replacement = string.Format("[assembly: AssemblyDescription(\"{0} {1}\")]",
- // project.Properties["build.description"],
- // project.Properties["build.svnversion"]);
- replacement = string.Format("[assembly: AssemblyDescription(\"{0}\")]",
- project.Properties["build.description"]);
- contents = Regex.Replace(contents, @"\[assembly: AssemblyDescription\("".*""\)\]", replacement);
-
- // Write out the file with the substituted version.
- StreamWriter writer = new StreamWriter(project.Properties["filename"], false);
- writer.Write(contents);
- writer.Close();
- }
- ]]>
- </code>
- </script>
- </do>
- </foreach>
- </target>
-
- <!-- Do the build. -->
- <target name="build" depends="init, setversion">
- <echo message="Building all modules including tests."/>
-
- <!-- Make sure output folder exists. -->
- <mkdir dir="${build.dir}" />
-
- <!-- copy reference assemblies over to the output dir -->
- <copy todir="${build.dir}" file="Qpid.Common/lib/seclib-1.0.0/Org.Mentalis.Security.dll"/>
- <copy todir="${build.dir}" file="Qpid.Common/lib/log4net/log4net.dll"/>
- <copy todir="${build.dir}" file="Qpid.Client.Tests/lib/nunit/nunit.framework.dll"/>
-
- <!-- Compile assemblies. -->
- <nant target="build">
- <buildfiles refid="src.builds" />
- </nant>
-
- <!-- Compile test assemblies. -->
- <nant target="build">
- <buildfiles refid="tests.pure.builds" />
- </nant>
- <nant target="build">
- <buildfiles refid="tests.integration.builds" />
- </nant>
-
- <!-- Compile test assemblies. -->
- <nant target="build">
- <buildfiles refid="other.builds" />
- </nant>
- </target>
-
- <!-- Runs all 'pure unit' tests. -->
- <target name="test" depends="build">
- <echo message="Running all pure unit tests."/>
- <nant target="test">
- <buildfiles refid="tests.pure.builds" />
- </nant>
- </target>
-
- <!-- Runs all 'integration' tests. -->
- <target name="integrationtest" depends="build">
- <echo message="Running all integration tests."/>
- <nant target="test">
- <buildfiles refid="tests.integration.builds" />
- </nant>
- </target>
-
- <!-- Creates a release package. -->
- <target name="release-pkg">
- <echo message="Building and packaging a release."/>
-
- <call target="clean"/>
- <call target="build"/>
-
- <property name="build.date" value="${datetime::now()}"/>
-
- <zip zipfile="${build.dir}/Qpid.NET-${framework::get-target-framework()}-${datetime::get-year(build.date)}${datetime::get-month(build.date)}${datetime::get-day(build.date)}.zip">
- <fileset basedir="${build.dir}">
- <include name="**/*.*"/>
- <exclude name="**/*.Tests.*"/>
- <exclude name="**/nunit.framework.dll"/>
- <exclude name="**/*.exe"/>
- </fileset>
-
- <fileset basedir="${base.dir}">
- <include name="LICENSE.txt"/>
- <include name="NOTICE.txt"/>
- <include name="README.txt"/>
- <include name="RELEASE_NOTES.txt"/>
- <include name="DISCLAIMER"/>
- </fileset>
- </zip>
- </target>
-
-</project>
-
-
+<?xml version="1.0"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> + +<project name="Qpid.NET" default="build"> + + <!-- Determines the formatter to use to format output of test results. --> + <property name="nant.formatter" value="Plain" /> + + <!-- Determines whether a 'debug' or 'release' build is to be done. Defaults to 'debug' --> + <property name="build.config" value="debug" /> + + <!-- Sets build properties consistently accross all assemblies in the project. --> + <property name="build.version.major" value="0"/> + <property name="build.version.minor" value="5"/> + <property name="build.version.build" value="0"/> + <property name="build.version.revision" value="0"/> + <property name="build.company" value="Apache Software Foundation"/> + <property name="build.copyright" value="Apache Software Foundation"/> + <property name="build.description" value="Built from svn revision number: "/> + + <!-- Fileset with build files for each 'core' assembly. --> + <fileset id="src.builds"> + <include name="Qpid.Buffer/default.build" /> + <include name="Qpid.Sasl/default.build" /> + <include name="Qpid.Messaging/default.build" /> + <include name="Qpid.Codec/default.build" /> + <include name="Qpid.Common/default.build" /> + <include name="Qpid.Client/default.build" /> + </fileset> + + <!-- Fileset with build files for 'pure unit' test assemblies. --> + <fileset id="tests.pure.builds"> + <include name="Qpid.Buffer.Tests/default.build" /> + <include name="Qpid.Sasl.Tests/default.build" /> + <include name="Qpid.Common.Tests/default.build" /> + <include name="Qpid.Client.Tests/default.build" /> + </fileset> + + <!-- Fileset with build files for 'integration' test assemblies. --> + <fileset id="tests.integration.builds"> + <include name="Qpid.Integration.Tests/default.build" /> + </fileset> + + <!-- Other test or utility assemblies. --> + <fileset id='other.builds'> + <include name="TopicListener/default.build" /> + <include name="TopicPublisher/default.build" /> + <include name="TestClient/default.build" /> + </fileset> + + <!-- Prepare environment for a debug build. --> + <target name="debug"> + <property name="build.debug" value="true" /> + <property name="build.defines" value="DEBUG;TRACE"/> + </target> + + <!-- Prepare environment for a release build. --> + <target name="release"> + <property name="build.debug" value="false" /> + <property name="build.defines" value=""/> + </target> + + <!-- Prepare environment for build. --> + <target name="init"> + <property name="base.dir" value="${project::get-base-directory()}" /> + <property name="build.dir" value="${base.dir}/bin/${framework::get-target-framework()}/${build.config}" /> + <call target="${build.config}" /> + </target> + + <!-- Cleans up the build output directory. --> + <target name="clean" depends="init"> + <delete dir="${build.dir}" failonerror="false" /> + </target> + + <!-- Runs 'svnversion' to get the repository revision into the build property 'build.svnversion'. --> + <target name="svnversion" description="Runs svnversion to get the current repository version into a build script property."> + <exec program="svnversion" output="svnversion_tmp.txt"> + <arg value="-n"/> + </exec> + + <loadfile file="svnversion_tmp.txt" property="build.svnversion"/> + <delete file="svnversion_tmp.txt"/> + + <!-- For some competely retarted reason the '-n' parameter to svnversion doesn't really work under windows... + Here is some code to strip the unwanted newlines. --> + <script language="C#"> + <code><![CDATA[ + public static void ScriptMain(Project project) + { + project.Properties["build.svnversion"] = project.Properties["build.svnversion"].Trim("\n\r".ToCharArray()); + } + ]]> + </code> + </script> + + </target> + + <!-- Performs a regex find-and-replace on assembly info files, substituting fields defined as build properties. --> + <target name="setversion" description="Stamp the version info onto assemblyinfo.cs files" depends="svnversion"> + + <echo>build.svnversion = ${build.svnversion}</echo> + + <foreach item="File" property="filename"> + <in> + <items basedir="."> + <include name="**\AssemblyInfo.cs"></include> + </items> + </in> + <do> + <script language="C#"> + <code><![CDATA[ + public static void ScriptMain(Project project) + { + // Read in the entire file to perform the substitution in. + StreamReader reader = new StreamReader(project.Properties["filename"]); + string contents = reader.ReadToEnd(); + reader.Close(); + + // Substitute the version numbers. + string replacement = string.Format("[assembly: AssemblyVersion(\"{0}.{1}.{2}.{3}\")]", + project.Properties["build.version.major"], + project.Properties["build.version.minor"], + project.Properties["build.version.build"], + project.Properties["build.version.revision"]); + contents = Regex.Replace(contents, @"\[assembly: AssemblyVersion\("".*""\)\]", replacement); + + // Substitute the company name and copyright. + replacement = string.Format("[assembly: AssemblyCompany(\"{0}\")]", + project.Properties["build.company"]); + contents = Regex.Replace(contents, @"\[assembly: AssemblyCompany\("".*""\)\]", replacement); + + replacement = string.Format("[assembly: AssemblyCopyright(\"{0}\")]", + project.Properties["build.copyright"]); + contents = Regex.Replace(contents, @"\[assembly: AssemblyCopyright\("".*""\)\]", replacement); + + // Update the description. + //replacement = string.Format("[assembly: AssemblyDescription(\"{0} {1}\")]", + // project.Properties["build.description"], + // project.Properties["build.svnversion"]); + replacement = string.Format("[assembly: AssemblyDescription(\"{0}\")]", + project.Properties["build.description"]); + contents = Regex.Replace(contents, @"\[assembly: AssemblyDescription\("".*""\)\]", replacement); + + // Write out the file with the substituted version. + StreamWriter writer = new StreamWriter(project.Properties["filename"], false); + writer.Write(contents); + writer.Close(); + } + ]]> + </code> + </script> + </do> + </foreach> + </target> + + <!-- Do the build. --> + <target name="build" depends="init, setversion"> + <echo message="Building all modules including tests."/> + + <!-- Make sure output folder exists. --> + <mkdir dir="${build.dir}" /> + + <!-- copy reference assemblies over to the output dir --> + <copy todir="${build.dir}" file="Qpid.Common/lib/seclib-1.0.0/Org.Mentalis.Security.dll"/> + <copy todir="${build.dir}" file="Qpid.Common/lib/log4net/log4net.dll"/> + <copy todir="${build.dir}" file="Qpid.Client.Tests/lib/nunit/nunit.framework.dll"/> + + <!-- Compile assemblies. --> + <nant target="build"> + <buildfiles refid="src.builds" /> + </nant> + + <!-- Compile test assemblies. --> + <nant target="build"> + <buildfiles refid="tests.pure.builds" /> + </nant> + <nant target="build"> + <buildfiles refid="tests.integration.builds" /> + </nant> + + <!-- Compile test assemblies. --> + <nant target="build"> + <buildfiles refid="other.builds" /> + </nant> + </target> + + <!-- Runs all 'pure unit' tests. --> + <target name="test" depends="build"> + <echo message="Running all pure unit tests."/> + <nant target="test"> + <buildfiles refid="tests.pure.builds" /> + </nant> + </target> + + <!-- Runs all 'integration' tests. --> + <target name="integrationtest" depends="build"> + <echo message="Running all integration tests."/> + <nant target="test"> + <buildfiles refid="tests.integration.builds" /> + </nant> + </target> + + <!-- Creates a release package. --> + <target name="release-pkg"> + <echo message="Building and packaging a release."/> + + <call target="clean"/> + <call target="build"/> + + <property name="build.date" value="${datetime::now()}"/> + <property name="build.timestamp" value="${framework::get-target-framework()}-${datetime::get-year(build.date)}${datetime::get-month(build.date)}${datetime::get-day(build.date)}"/> + + <zip zipfile="${build.dir}/Qpid.NET-${build.timestamp}.zip"> + <fileset basedir="${build.dir}" prefix="Qpid.NET-${build.timestamp}"> + <include name="**/*.*"/> + <exclude name="**/*.Tests.*"/> + <exclude name="**/nunit.framework.dll"/> + <exclude name="**/*.exe"/> + </fileset> + + <fileset basedir="${base.dir}" prefix="Qpid.NET-${build.timestamp}"> + <include name="LICENSE.txt"/> + <include name="NOTICE.txt"/> + <include name="README.txt"/> + <include name="RELEASE_NOTES.txt"/> + <include name="DISCLAIMER"/> + </fileset> + </zip> + </target> + +</project> + + |