| <!-- |
| 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> |