| <?xml version="1.0"?> |
| <!-- |
| Copyright 1999-2005 The Apache Software Foundation |
| |
| Licensed 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. |
| --> |
| <!-- $Id$ --> |
| <project name="compile"> |
| |
| <description> |
| Compilation Targets |
| </description> |
| |
| <!-- compilation parts used by all targets --> |
| <presetdef name="cocoon.javac"> |
| <javac |
| debug="${compiler.debug}" |
| optimize="${compiler.optimize}" |
| deprecation="${compiler.deprecation}" |
| target="${target.vm}" |
| source="${source.vm}" |
| nowarn="${compiler.nowarn}" |
| compiler="${compiler}" |
| classpathref="classpath"/> |
| </presetdef> |
| |
| <macrodef name="cocoon.compile"> |
| <attribute name="destdir"/> |
| <attribute name="srcdir"/> |
| <attribute name="classpathref" default="classpath"/> |
| <sequential> |
| <mkdir dir="@{destdir}"/> |
| <!-- copy those files that need to be in the classpath --> |
| <copy todir="@{destdir}"> |
| <fileset dir="@{srcdir}"> |
| <exclude name="**/*.java"/> |
| </fileset> |
| </copy> |
| <cocoon.javac srcdir="@{srcdir}" |
| destdir="@{destdir}"/> |
| </sequential> |
| </macrodef> |
| |
| <!-- compiles everything --> |
| <target name="compile" |
| depends="compile-core, compile-deprecated, compile-tests"/> |
| |
| <!-- compiles mocks --> |
| <target name="compile-mocks"> |
| <cocoon.compile srcdir="${mocks}" |
| destdir="${build.mocks}"/> |
| </target> |
| |
| <!-- compiles the core --> |
| <target name="compile-core" depends="compile-mocks, clover.on"> |
| <cocoon.compile srcdir="${java}" |
| destdir="${build.dest}"/> |
| <!-- Let's replace some values in the cocoon.properties file --> |
| <copy file="${java}/org/apache/cocoon/cocoon.properties" |
| overwrite="true" filtering="true" |
| tofile="${build.dest}/org/apache/cocoon/cocoon.properties"> |
| <filterset> |
| <filter token="compiler.debug" value="${compiler.debug}"/> |
| <filter token="compiler.optimize" value="${compiler.optimize}"/> |
| <filter token="target.vm" value="${target.vm}"/> |
| <filter token="source.vm" value="${source.vm}"/> |
| </filterset> |
| </copy> |
| </target> |
| |
| <!-- compiles deprecated code --> |
| <target name="compile-deprecated" depends="clover.off" |
| unless="internal.exclude.deprecated"> |
| <!-- |
| <xpatch file="${build.dest}/org/apache/cocoon/cocoon.roles" |
| srcdir="${deprecated.conf}" |
| includes="**/*.xroles"/> |
| --> |
| <cocoon.compile srcdir="${deprecated.src}" |
| destdir="${build.deprecated}"/> |
| </target> |
| |
| <!-- compiles tests classes --> |
| <target name="compile-tests" |
| depends="compile-core, compile-deprecated, clover.off"> |
| |
| <!-- Compile tests --> |
| <cocoon.compile srcdir="${test}" |
| destdir="${build.test}" |
| classpathref="test.classpath"/> |
| </target> |
| |
| <!-- === Package Targets ================================================= --> |
| |
| <macrodef name="cocoon.jar"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <attribute name="index" default="false"/> |
| <attribute name="update" default="yes"/> |
| <sequential> |
| <jar jarfile="${build}/@{name}.jar" update="@{update}" index="@{index}"> |
| <fileset dir="@{dir}"> |
| <include name="**/*.java"/> |
| </fileset> |
| </jar> |
| </sequential> |
| </macrodef> |
| |
| <!-- optionally add source files to the core jar --> |
| <macrodef name="cocoon.package-sources"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- optionally add source files to the core jar --> |
| <if> |
| <istrue value="${include.sources-in-jars}"/> |
| <then> |
| <cocoon.jar name="@{name}" |
| dir="@{dir}"/> |
| </then> |
| </if> |
| <if> |
| <istrue value="${include.sources-jars}"/> |
| <then> |
| <cocoon.jar name="@{name}.src" |
| dir="@{dir}"/> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <!-- packages everything --> |
| <target name="package" |
| depends="package-core, package-deprecated, package-testcase"/> |
| |
| <!-- package the core --> |
| <target name="package-core" depends="compile-core, block-roles"> |
| <jar jarfile="${build}/${name}.jar" manifest="${java}/Manifest.mf" index="true"> |
| <fileset dir="${build.dest}"> |
| <exclude name="**/Manifest.mf"/> |
| </fileset> |
| </jar> |
| |
| <cocoon.package-sources name="${name}" |
| dir="${java}"/> |
| |
| </target> |
| |
| <!-- package deprecated code --> |
| <target name="package-deprecated" depends="compile-deprecated" |
| unless="internal.exclude.deprecated"> |
| <jar jarfile="${build}/${name}-deprecated.jar" index="true"> |
| <fileset dir="${build.deprecated}"/> |
| </jar> |
| |
| <cocoon.package-sources name="${name}-deprecated" |
| dir="${deprecated.src}"/> |
| </target> |
| |
| <!-- package testcase code --> |
| <target name="package-testcase" depends="compile-tests"> |
| <jar jarfile="${build}/${name}-testcase.jar" index="true"> |
| <fileset dir="${build.test}"/> |
| </jar> |
| |
| <cocoon.package-sources name="${name}-testcase" |
| dir="${test}"/> |
| </target> |
| |
| <!-- === Block Targets =================================================== --> |
| |
| <!-- prepares the blocks build --> |
| <target name="prepare-blocks"> |
| <mkdir dir="${build.blocks}"/> |
| |
| <copy file="${gump.descriptor}" tofile="${build.temp}/gump.xml" overwrite="true"/> |
| <xpatch file="${build.temp}/gump.xml" srcdir="."> |
| <include name="local.blocks.*.xconf"/> |
| </xpatch> |
| <xslt in="${build.temp}/gump.xml" |
| out="${build.temp}/blocks-build.xml" |
| style="${tools.src}/blocks-build.xsl"/> |
| </target> |
| |
| <!-- patch the cocoon role file --> |
| <target name="block-roles" depends="prepare-blocks"> |
| <ant antfile="${build.temp}/blocks-build.xml" |
| inheritAll="true" |
| inheritRefs="false" |
| target="roles"/> |
| </target> |
| |
| <!-- compiles and packages all blocks --> |
| <target name="blocks" depends="compile,prepare-blocks"> |
| <ant antfile="${build.temp}/blocks-build.xml" |
| inheritAll="true" |
| inheritRefs="false" |
| target="compile"/> |
| </target> |
| |
| <target name="call-block-target"> |
| <ant antfile="${build.temp}/blocks-build.xml" |
| inheritAll="true" |
| inheritRefs="false" |
| target="cocoon-block-${block.name}-${target.name}" /> |
| </target> |
| </project> |