diff options
Diffstat (limited to 'qpid/dotnet/Qpid.Common/build.xml')
-rw-r--r-- | qpid/dotnet/Qpid.Common/build.xml | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/qpid/dotnet/Qpid.Common/build.xml b/qpid/dotnet/Qpid.Common/build.xml new file mode 100644 index 0000000000..96dd877722 --- /dev/null +++ b/qpid/dotnet/Qpid.Common/build.xml @@ -0,0 +1,95 @@ +<!-- + + 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. + +--> + + +<!-- + This sole purpose of this build script is to generate the framing layer for the .net client from the AMQ spec. + --> +<project name="AMQ Dot Net Framing Layer" default="generate"> + + <property name="amq.home" value="../.."/> + + <property name="stylesheet" value="stylesheets/framing.xsl"/> + <property name="registry_stylesheet" value="stylesheets/registry.xsl"/> + <property name="registry_template" value="resources/registry.template"/> + <property name="saxon.jar" value="lib/saxon/saxon8.jar"/> + <property name="generated.src" value="generated"/> + <property name="static.src" value="src"/> + <property name="resources" value="resources"/> + <property name="base.lib" value="lib"/> + + <path id="amq.home.path"> + <pathelement location="${amq.home}"/> + </path> + + <pathconvert targetos="unix" property="amq.home.fixed" refid="amq.home.path"/> + +<!-- Some spec changes break the build, reverting to private copy in Qpid.Common temporarily till this is fixed. --> + <property name="amq.asl" value="${amq.home.fixed}/specs/amqp.0-8.xml"/> + + <target name="clean" description="Deletes the generated sources."> + <delete> + <fileset dir="${generated.src}" includes="**/*"/> + </delete> + </target> + + <!-- + Checks if the generation step needs to be performed. It will be skipped if the sources are up to date with the spec and provided that the + force flag has not been set. + --> + <target name="check-generate" + description="Checks if the generated sources are up-to-date. Use -Dforce=true or the 'forcegen' target to force generation."> + + <condition property="generateNotRequired"> + <and> + <uptodate targetfile="${generated.src}/results.out" srcfile="${amq.asl}"/> + <not><isset property="force"/></not> + </and> + </condition> + </target> + + <!-- Applies a transformation to the AMQP spec to generate the framing layer. --> + <target name="generate" depends="check-generate" unless="generateNotRequired" description="generates code"> + + <mkdir dir="${generated.src}"/> + + <java jar="${saxon.jar}" fork="true"> + <arg value="-o"/> + <arg value="${generated.src}/results.out"/> + <arg value="${amq.asl}"/> + <arg value="${stylesheet}"/> + <arg value="asl_base=${asl.base}"/> + <arg value="registry_name=MainRegistry"/> + </java> + + <java jar="${saxon.jar}" fork="true"> + <arg value="-o"/> + <arg value="${generated.src}/registry.out"/> + <arg value="${registry_template}"/> + <arg value="${registry_stylesheet}"/> + </java> + </target> + + <!-- Does a clean and forces re-generation of the sources. --> + <target name="forcegen" depends="clean, generate" description="Forces clean re-generation of the code."> + </target> + +</project> |