aboutsummaryrefslogtreecommitdiffstats
path: root/fop/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'fop/build.xml')
-rw-r--r--fop/build.xml1545
1 files changed, 1545 insertions, 0 deletions
diff --git a/fop/build.xml b/fop/build.xml
new file mode 100644
index 000000000..6639bc568
--- /dev/null
+++ b/fop/build.xml
@@ -0,0 +1,1545 @@
+<?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.
+-->
+<!-- ===========================================================================
+
+ * ================== *
+ | FOP build system |
+ * ================== *
+
+Building instructions
+=====================
+
+First, install Ant (http://ant.apache.org). Check that ant or ant.bat
+is in your search path and that JAVA_HOME and ANT_HOME are properly set.
+Next make sure your current working directory is where this very file is
+located. Then type
+
+ ant
+
+If everything is right and all the required packages are visible, this action
+will generate a file called "fop.jar" in the "./build" directory.
+
+If you experience any problems with the build please visit the FOP website for
+more information: http://xmlgraphics.apache.org/fop
+
+
+Build targets
+=============
+
+The build system is not only responsible for compiling Fop into a jar file,
+but is also responsible for creating the javadocs, distributions, examples
+and a miscellaneous stuff. In fact, the file you have here is _exactly_ what
+is used by fop maintainers to take care of nearly everything in the Fop
+project, no less and no more.
+
+Call the Ant (see above) with the parameter "-projecthelp" to get a
+list of possible build targets.
+
+============================================================================ -->
+<project default="all" basedir="." name="fop">
+<!-- See build.properties and build-local.properties for overriding build settings. -->
+<!-- build-local.properties is not stored in SVN and overrides values from build.properties -->
+ <property environment="env"/>
+ <property file="${basedir}/build-local.properties"/>
+ <property file="${basedir}/build.properties"/>
+ <fileset dir="${basedir}" id="dist.bin">
+ <include name="../KEYS"/>
+ <include name="../LICENSE"/>
+ <include name="../NOTICE"/>
+ <include name="../README"/>
+ <include name="conf/**"/>
+ <include name="examples/**"/>
+ <include name="fop"/>
+ <include name="fop.bat"/>
+ <include name="fop.cmd"/>
+ <include name="fop.js"/>
+ <include name="status.xml"/>
+ </fileset>
+ <fileset dir="${basedir}" id="dist.bin.lib">
+ <patternset id="dist.lib">
+ <include name="lib/README*"/>
+ <include name="lib/avalon-framework*"/>
+ <include name="lib/batik*"/>
+ <include name="lib/commons-io*"/>
+ <include name="lib/commons-logging*"/>
+ <include name="lib/fontbox*"/>
+ <include name="lib/serializer*"/>
+ <include name="lib/xalan*"/>
+ <include name="lib/xerces*"/>
+ <include name="lib/xml-apis*"/>
+ <include name="lib/xmlgraphics-commons*"/>
+ </patternset>
+ </fileset>
+ <patternset id="dist.src.lib.build">
+ <include name="lib/build/asm*"/>
+ <include name="lib/build/hamcrest*"/>
+ <include name="lib/build/jaxen*"/>
+ <include name="lib/build/mockito*"/>
+ <include name="lib/build/objenesis*"/>
+ <include name="lib/build/pmd*"/>
+ <include name="lib/build/qdox*"/>
+ <include name="lib/build/xmlunit*"/>
+ </patternset>
+ <fileset dir="${basedir}" id="dist.src">
+ <include name="../KEYS"/>
+ <include name="../LICENSE"/>
+ <include name="../NOTICE"/>
+ <include name="../README"/>
+ <include name="build.*"/>
+ <include name="checkstyle*"/>
+ <exclude name="checkstyle-noframes.xsl"/>
+ <include name="conf/**"/>
+ <include name="examples/**"/>
+ <include name="findbugs*"/>
+ <include name="fop"/>
+ <include name="fop.bat"/>
+ <include name="fop.cmd"/>
+ <include name="fop.js"/>
+ <include name="forrest.*"/>
+ <include name="hyph/hyphenation.dtd"/>
+ <include name="hyph/readme"/>
+ <include name="jacoco*"/>
+ <include name="known-issues.xml"/>
+ <include name="lib/servlet*"/>
+ <include name="src/**"/>
+ <include name="status.xml"/>
+ <include name="test/**"/>
+ <patternset refid="dist.lib"/>
+ <patternset refid="dist.src.lib.build"/>
+ </fileset>
+ <path id="libs-build-classpath">
+ <fileset dir="${basedir}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+ <property name="lib-tools" value="${basedir}/lib/build"/>
+ <path id="libs-tools-build-classpath">
+ <path refid="libs-build-classpath"/>
+ <fileset dir="${lib-tools}">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+ <path id="libs-run-classpath">
+ <path refid="libs-build-classpath"/>
+ <fileset dir="${basedir}/build">
+ <include name="fop.jar"/>
+ <include name="fop-hyph.jar"/>
+ </fileset>
+ </path>
+ <patternset id="exclude-jai">
+ <exclude name="org/apache/fop/util/bitmap/JAIMonochromeBitmapConverter.java" unless="jai.present"/>
+ </patternset>
+ <patternset id="exclude-jce-dependencies">
+ <exclude name="org/apache/fop/pdf/PDFEncryptionJCE.java" unless="jce.present"/>
+ </patternset>
+ <property name="Name" value="Apache FOP"/>
+ <property name="name" value="fop"/>
+ <property name="NAME" value="FOP"/>
+ <property name="version" value="svn-trunk"/>
+ <property name="year" value="1999-2016"/>
+ <property name="javac.debug" value="on"/>
+ <property name="javac.optimize" value="off"/>
+ <property name="javac.deprecation" value="on"/>
+ <property name="javac.source" value="1.5"/>
+ <property name="javac.target" value="1.5"/>
+ <property name="javac.fork" value="no"/>
+ <property name="junit.fork" value="yes"/>
+ <property name="junit.haltonfailure" value="off"/>
+ <property name="junit.maxmemory" value="1024m"/>
+ <property name="junit.printsummary" value="off"/>
+ <property name="junit.formatter.brief" value="on"/>
+ <property name="javadoc.packages" value="org.apache.fop.*"/>
+ <property name="src.dir" value="${basedir}/src"/>
+ <property name="src.codegen.dir" value="${src.dir}/main/codegen"/>
+ <property name="src.codegen.fonts.dir" value="${src.codegen.dir}/fonts"/>
+ <property name="src.java.dir" value="${src.dir}/main/java"/>
+ <property name="src.resources.dir" value="${src.dir}/main/resources"/>
+ <property name="src.sandbox.dir" value="${src.dir}/sandbox"/>
+ <property name="src.viewer.resources.dir" value="${src.java.dir}/org/apache/fop/render/awt/viewer/resources"/>
+ <property name="src.viewer.images.dir" value="${src.java.dir}/org/apache/fop/render/awt/viewer/images"/>
+ <property name="fo.examples.dir" value="${basedir}/examples/fo/basic"/>
+ <property name="fo.examples.userconfig" value="conf/fop.xconf"/>
+ <property name="fo.examples.include" value="**/*.fo"/>
+ <property name="fo.examples.force" value="false"/>
+ <property name="xml.tests.include" value="**/*.xml"/>
+ <property name="xml.tests.force" value="false"/>
+ <property name="xml.tests.userconfig" value="conf/fop.xconf"/>
+ <property name="lib.dir" value="${basedir}/lib"/>
+ <property name="user.hyph.dir" value="${basedir}/hyph"/>
+ <property name="unidata.dir" value="${basedir}/UNIDATA"/>
+ <property name="hyph.stacksize" value="512k"/>
+ <property name="test.dir" value="${basedir}/test"/>
+ <property name="test.java.dir" value="${src.dir}/test/java"/>
+ <property name="build.dir" value="${basedir}/build"/>
+ <property name="build.gensrc.dir" value="${build.dir}/gensrc"/>
+ <property name="build.classes.dir" value="${build.dir}/classes"/>
+ <property name="build.sandbox-classes.dir" value="${build.dir}/sandbox-classes"/>
+ <property name="build.codegen-classes.dir" value="${build.dir}/codegen-classes"/>
+ <property name="build.codegen.fonts.dir" value="${build.gensrc.dir}/org/apache/fop/fonts/"/>
+ <property name="build.javadocs.dir" value="${build.dir}/javadocs"/>
+ <property name="build.examples.dir" value="${build.dir}/examples"/>
+ <property name="build.unit.tests.dir" value="${build.dir}/test-classes"/>
+ <property name="build.tests.dir" value="${build.dir}/tests"/>
+ <property name="build.viewer.resources.dir" value="${build.classes.dir}/org/apache/fop/render/awt/viewer/resources"/>
+ <property name="build.viewer.images.dir" value="${build.classes.dir}/org/apache/fop/render/awt/viewer/images"/>
+ <property name="build.property.examples.mime.type" value="application/pdf"/>
+ <property name="build.property.tests.mime.type" value="application/pdf"/>
+ <property name="dist.bin.dir" value="${basedir}/dist-bin"/>
+ <property name="dist.src.dir" value="${basedir}/dist-src"/>
+ <property name="nightly.dir" value="${basedir}/nightly"/>
+ <property name="dist.bin.result.dir" value="${dist.bin.dir}/${name}-${version}"/>
+ <property name="dist.src.result.dir" value="${dist.src.dir}/${name}-${version}"/>
+ <tstamp/>
+ <property name="nightly.result.dir" value="${nightly.dir}/${name}-${DSTAMP}"/>
+ <property name="samedir" value="${basedir}"/>
+ <property name="junit.reports.dir" value="${build.dir}/test-reports"/>
+ <property name="junit.html.reports.dir" value="${build.dir}/test-reports/html"/>
+<!-- Importing Apache Forrest for building the docs -->
+<!--
+ <property environment="env"/>
+ <property name="forrest.home" value="${env.FORREST_HOME}"/>
+ <import file="${env.FORREST_HOME}/main/forrest.build.xml" optional="true"/>
+-->
+
+ <presetdef name="javac">
+ <javac fork="${javac.fork}"
+ debug="${javac.debug}"
+ deprecation="${javac.deprecation}"
+ optimize="${javac.optimize}"
+ source="${javac.source}" target="${javac.target}"/>
+ </presetdef>
+
+ <presetdef name="junit">
+ <junit haltonfailure="${junit.haltonfailure}"
+ fork="${junit.fork}"
+ printsummary="${junit.printsummary}"
+ maxmemory="${junit.maxmemory}"/>
+ </presetdef>
+
+ <!-- =================================================================== -->
+<!-- Initialization target -->
+<!-- =================================================================== -->
+ <target name="init" depends="init-avail">
+ </target>
+ <target name="init-avail">
+ <echo message="------------------- ${Name} ${version} [${year}] ----------------"/>
+ <echo message="See build.properties and build-local.properties for additional build settings"/>
+ <echo message="${ant.version}"/>
+ <echo message="VM: ${java.vm.version}, ${java.vm.vendor}"/>
+ <echo message="JAVA_HOME: ${env.JAVA_HOME}"/>
+ <available property="jai.present" classname="javax.media.jai.JAI" classpathref="libs-build-classpath"/>
+ <condition property="jai.message" value="JAI Support PRESENT">
+ <equals arg1="${jai.present}" arg2="true"/>
+ </condition>
+ <condition property="jai.message" value="JAI Support NOT Present">
+ <not>
+ <equals arg1="${jai.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${jai.message}"/>
+ <available property="jce.present" classname="javax.crypto.Cipher" classpathref="libs-build-classpath"/>
+ <condition property="jce.message" value="JCE Support PRESENT">
+ <equals arg1="${jce.present}" arg2="true"/>
+ </condition>
+ <condition property="jce.message" value="JCE Support NOT Present">
+ <not>
+ <equals arg1="${jce.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${jce.message}"/>
+ <available property="jdk14.present" classname="java.lang.CharSequence"/>
+ <fail message="${Name} requires at least Java 1.4!" unless="jdk14.present"/>
+ <available property="junit.present" classname="org.junit.Test" classpathref="libs-tools-build-classpath"/>
+ <condition property="junit.message" value="JUnit Support PRESENT">
+ <equals arg1="${junit.present}" arg2="true"/>
+ </condition>
+ <condition property="junit.message" value="JUnit Support NOT Present - Committers are required to have JUnit working">
+ <not>
+ <equals arg1="${junit.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${junit.message}"/>
+ <condition property="xmlunit.present">
+ <and>
+ <available classname="org.custommonkey.xmlunit.XMLTestCase" classpathref="libs-tools-build-classpath"/>
+ <isset property="junit.present"/>
+ </and>
+ </condition>
+ <condition property="xmlunit.message" value="XMLUnit Support PRESENT">
+ <equals arg1="${xmlunit.present}" arg2="true"/>
+ </condition>
+ <condition property="xmlunit.message" value="XMLUnit Support NOT Present - you can get it from http://xmlunit.sourceforge.net">
+ <not>
+ <equals arg1="${xmlunit.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${xmlunit.message}"/>
+ </target>
+<!-- =================================================================== -->
+<!-- Help on usage -->
+<!-- =================================================================== -->
+ <target name="usage">
+ <echo message="Use the -projecthelp option instead"/>
+ </target>
+<!-- =================================================================== -->
+<!-- Generate the source code -->
+<!-- =================================================================== -->
+ <macrodef name="create-font">
+ <attribute name="name"/>
+ <sequential>
+ <xslt in="${src.codegen.fonts.dir}/@{name}.xml" style="${src.codegen.fonts.dir}/font-file.xsl" out="${build.codegen.fonts.dir}/base14/@{name}.java"/>
+ </sequential>
+ </macrodef>
+ <target name="codegen" depends="init" description="Generates the java files from the xml resources">
+ <echo message="Generating the java files from xml resources"/>
+ <mkdir dir="${build.gensrc.dir}"/>
+ <mkdir dir="${build.gensrc.dir}/org/apache/fop/fonts/base14"/>
+ <xslt in="${src.codegen.fonts.dir}/encodings.xml" style="${src.codegen.fonts.dir}/code-point-mapping.xsl" out="${build.codegen.fonts.dir}/CodePointMapping.java"/>
+ <xslt basedir="${src.codegen.fonts.dir}" includes="Helvetica*.xml,Times*.xml,Courier*.xml" style="${src.codegen.fonts.dir}/font-file.xsl" destdir="${build.codegen.fonts.dir}/base14/" extension=".java">
+ <param name="encoding" expression="WinAnsiEncoding"/>
+ </xslt>
+ <create-font name="Symbol"/>
+ <create-font name="ZapfDingbats"/>
+ </target>
+<!-- =================================================================== -->
+<!-- Compiles the source directory -->
+<!-- =================================================================== -->
+ <target name="compile-java" depends="init, codegen">
+<!-- create directories -->
+ <mkdir dir="${build.classes.dir}"/>
+ <javac destdir="${build.classes.dir}" includeAntRuntime="true">
+ <src path="${build.gensrc.dir}"/>
+ <src path="${src.java.dir}"/>
+ <patternset includes="**/*.java"/>
+ <patternset refid="exclude-jce-dependencies"/>
+ <patternset refid="exclude-jai"/>
+ <classpath refid="libs-build-classpath"/>
+ <compilerarg value="-Xlint:cast"/>
+ </javac>
+ <mkdir dir="${build.sandbox-classes.dir}"/>
+ <javac destdir="${build.sandbox-classes.dir}" includeAntRuntime="true">
+ <src path="${src.sandbox.dir}"/>
+ <patternset includes="**/*.java"/>
+ <patternset refid="exclude-jai"/>
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ </classpath>
+ </javac>
+ </target>
+ <target name="resourcegen" depends="compile-java">
+ <mkdir dir="${build.codegen-classes.dir}"/>
+ <javac destdir="${build.codegen-classes.dir}" includeAntRuntime="true">
+ <src path="${src.codegen.dir}/java"/>
+ <patternset includes="**/*.java"/>
+ <classpath>
+ <path refid="libs-tools-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ </classpath>
+ </javac>
+ <copy todir="${build.codegen-classes.dir}">
+ <fileset dir="${src.codegen.dir}/java">
+ <include name="**/*.xsl"/>
+ </fileset>
+ </copy>
+ <taskdef name="eventResourceGenerator" classname="org.apache.fop.tools.EventProducerCollectorTask">
+ <classpath>
+ <path refid="libs-tools-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ <pathelement location="${build.codegen-classes.dir}"/>
+ </classpath>
+ </taskdef>
+ <eventResourceGenerator destdir="${build.gensrc.dir}">
+ <fileset dir="${src.java.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ </eventResourceGenerator>
+ </target>
+ <target name="compile-copy-resources" depends="resourcegen">
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.resources.dir}">
+ <include name="META-INF/**"/>
+ <include name="**/*.icm"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.LICENSE.txt"/>
+ <include name="**/*.xsl"/>
+ </fileset>
+ <fileset dir="${build.gensrc.dir}">
+ <include name="**/*.xml"/>
+ </fileset>
+ </copy>
+ <mkdir dir="${build.viewer.resources.dir}"/>
+ <copy todir="${build.viewer.resources.dir}">
+ <fileset dir="${src.viewer.resources.dir}"/>
+ </copy>
+ <mkdir dir="${build.viewer.images.dir}"/>
+ <copy todir="${build.viewer.images.dir}">
+ <fileset dir="${src.viewer.images.dir}"/>
+ </copy>
+<!-- sandbox -->
+ <copy todir="${build.sandbox-classes.dir}">
+ <fileset dir="${src.sandbox.dir}">
+ <include name="META-INF/**"/>
+ </fileset>
+ </copy>
+ </target>
+ <target name="compile" depends="compile-java, compile-copy-resources" description="Compiles the source code"/>
+ <!-- =================================================================== -->
+ <!-- Helper task to generate source files that have already been checked -->
+ <!-- into the repository. This task uses Unicode Character Database -->
+ <!-- files. This task need only be run when the latter files have been -->
+ <!-- updated. This target should never be part of the normal build -->
+ <!-- process. Output is UnicodeClasses.CLASSES_XML -->
+ <!-- (src/java/org/apache/fop/hyphenation/classes.xml). -->
+ <!-- =================================================================== -->
+ <target name="codegen-hyphenation-classes">
+ <javac destdir="${build.codegen-classes.dir}">
+ <src path="${src.codegen.dir}/unicode/java"/>
+ </javac>
+ <java classname="org.apache.fop.hyphenation.UnicodeClasses" resultproperty="classes.result" classpath="${build.codegen-classes.dir}">
+ <arg value="${src.java.dir}/org/apache/fop/hyphenation/classes.xml"/>
+ </java>
+ <condition property="classes.result.message" value="Generation of classes successful">
+ <not>
+ <isfailure code="${classes.result}"/>
+ </not>
+ </condition>
+ <condition property="classes.result.message" value="Generation of classes failed">
+ <isfailure code="${classes.result}"/>
+ </condition>
+ <echo message="${classes.result.message}"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- compiles hyphenation patterns -->
+ <!-- =================================================================== -->
+ <target name="compile-hyphenation" depends="compile" description="Compiles the hyphenation pattern files">
+ <path id="hyph-classpath">
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ </path>
+ <mkdir dir="${build.classes.dir}/hyph"/>
+ <java classname="org.apache.fop.hyphenation.SerializeHyphPattern" fork="true" resultproperty="hyph.result" classpathref="hyph-classpath">
+ <arg value="${user.hyph.dir}"/>
+ <arg value="${build.classes.dir}/hyph"/>
+ <jvmarg value="-Xss${hyph.stacksize}"/>
+ </java>
+ <condition property="hyph.result.message" value="Hyphenation successful">
+ <not>
+ <isfailure code="${hyph.result}"/>
+ </not>
+ </condition>
+ <condition property="hyph.result.message" value="Hyphenation failed">
+ <isfailure code="${hyph.result}"/>
+ </condition>
+ <echo message="${hyph.result.message}"/>
+ </target>
+ <target name="uptodate-jar-hyphenation" depends="compile-hyphenation">
+ <uptodate property="jar.hyphenation.uptodate" targetfile="${build.dir}/fop-hyph.jar">
+ <srcfiles dir="${build.classes.dir}/hyph"/>
+ </uptodate>
+ </target>
+ <target name="jar-hyphenation" depends="compile-hyphenation,uptodate-jar-hyphenation" description="Generates the hyphenation jar file" unless="jar.hyphenation.uptodate">
+ <tstamp>
+ <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
+ </tstamp>
+ <jar jarfile="${build.dir}/fop-hyph.jar" basedir="${build.classes.dir}" includes="hyph/*.hyp">
+ <manifest>
+ <attribute name="Implementation-Title" value="${Name}"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/fop/)"/>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ </manifest>
+ </jar>
+ </target>
+<!-- =================================================================== -->
+<!-- main FOP JARs -->
+<!-- =================================================================== -->
+ <target name="uptodate-jar-main" depends="compile">
+ <uptodate property="jar.main.uptodate" targetfile="${build.dir}/fop.jar">
+ <srcfiles dir="${build.classes.dir}"/>
+ </uptodate>
+ </target>
+ <target name="jar-main" depends="compile,uptodate-jar-main" description="Generates the main jar file" unless="jar.main.uptodate">
+ <tstamp>
+ <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
+ </tstamp>
+ <pathconvert property="manifest.classpath" dirsep="/" pathsep=" " refid="libs-build-classpath">
+ <map from="${basedir}${file.separator}lib${file.separator}" to=""/>
+ </pathconvert>
+ <jar jarfile="${build.dir}/fop.jar" basedir="${build.classes.dir}">
+ <manifest>
+ <attribute name="Main-Class" value="org.apache.fop.cli.Main"/>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ <section name="org/apache/fop/">
+ <attribute name="Specification-Title" value="XSL-FO - Extensible Stylesheet Language"/>
+ <attribute name="Specification-Version" value="1.1"/>
+ <attribute name="Specification-Vendor" value="World Wide Web Consortium"/>
+ <attribute name="Specification-URL" value="http://www.w3.org/TR/xsl"/>
+ <attribute name="Implementation-Title" value="${Name}"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/fop/)"/>
+ </section>
+ </manifest>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+ </target>
+ <target name="uptodate-jar-sandbox" depends="compile">
+ <uptodate property="jar.sandbox.uptodate" targetfile="${build.dir}/fop-sandbox.jar">
+ <srcfiles dir="${build.sandbox-classes.dir}"/>
+ </uptodate>
+ </target>
+ <target name="jar-sandbox" depends="compile,uptodate-jar-sandbox" description="Generates the sandbox jar file" unless="jar.sandbox.uptodate">
+ <tstamp>
+ <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
+ </tstamp>
+ <jar jarfile="${build.dir}/fop-sandbox.jar" basedir="${build.sandbox-classes.dir}">
+ <manifest>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ </manifest>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+ </target>
+ <target name="uptodate-jar-sources" depends="codegen">
+ <uptodate property="jar.sources.uptodate" targetfile="${build.dir}/fop-sources.jar">
+ <srcfiles dir="${build.gensrc.dir}"/>
+ <srcfiles dir="${src.java.dir}"/>
+ </uptodate>
+ </target>
+ <target name="jar-sources" depends="codegen" description="Generates a jar file with all the sources" unless="jar.sources.uptodate">
+ <tstamp>
+ <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
+ </tstamp>
+ <patternset id="java-only">
+ <include name="**/*.java"/>
+ </patternset>
+ <jar jarfile="${build.dir}/${name}-${version}-sources.jar">
+ <fileset dir="${build.gensrc.dir}">
+ <patternset refid="java-only"/>
+ </fileset>
+ <fileset dir="${src.java.dir}">
+ <patternset refid="java-only"/>
+ </fileset>
+ <fileset dir="${basedir}">
+ <include name="../LICENSE"/>
+ <include name="../NOTICE"/>
+ </fileset>
+ </jar>
+ </target>
+<!-- =================================================================== -->
+<!-- Creates the class package -->
+<!-- =================================================================== -->
+ <target name="package" depends="jar-main,jar-hyphenation,jar-sandbox" description="Generates the jar files"/>
+ <target name="servlet" depends="package" description="Generates the WAR with the sample FOP servlet">
+ <echo message="Creating the WAR file"/>
+ <war warfile="${build.dir}/fop.war" webxml="${src.dir}/conf/web.xml">
+ <lib dir="${lib.dir}">
+ <include name="avalon-framework*.jar"/>
+ <include name="commons-logging*.jar"/>
+ <include name="batik*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="xmlgraphics*.jar"/>
+ </lib>
+ <lib dir="${build.dir}">
+ <include name="fop.jar"/>
+ </lib>
+ </war>
+ </target>
+ <patternset id="transcoder-classes">
+<!-- General classes -->
+ <patternset>
+ <include name="org/apache/fop/Version.class"/>
+ <include name="org/apache/fop/accessibility/StructureTreeElement.class"/>
+ <include name="org/apache/fop/apps/Fop.class"/>
+ <include name="org/apache/fop/apps/FOPException.class"/>
+ <include name="org/apache/fop/apps/io/**"/>
+ <include name="org/apache/fop/area/AreaTreeControl*"/>
+ <include name="org/apache/fop/complexscripts/bidi/BidiClass.class"/>
+ <include name="org/apache/fop/complexscripts/bidi/BidiConstants.class"/>
+ <include name="org/apache/fop/complexscripts/bidi/UnicodeBidiAlgorithm.class"/>
+ <include name="org/apache/fop/complexscripts/fonts/*.class"/>
+ <include name="org/apache/fop/complexscripts/util/GlyphTester.class"/>
+ <include name="org/apache/fop/events/EventProducer.class"/>
+ <include name="org/apache/fop/fo/Constants.class"/>
+ <include name="org/apache/fop/fo/FOTreeBuilder.class"/>
+ <include name="org/apache/fop/image/loader/batik/BatikImageFlavors*.class"/>
+ <include name="org/apache/fop/svg/**"/>
+ <include name="org/apache/fop/fonts/**"/>
+ <include name="org/apache/fop/render/gradient/**"/>
+ <include name="org/apache/fop/traits/Direction.class"/>
+ <include name="org/apache/fop/traits/MinOptMax.class"/>
+ <include name="org/apache/fop/traits/TraitEnum.class"/>
+ <include name="org/apache/fop/util/CMYKColorSpace*.class"/>
+ <include name="org/apache/fop/util/Color*.class"/>
+ <include name="org/apache/fop/util/ASCII*.class"/>
+ <include name="org/apache/fop/util/*OutputStream.class"/>
+ <include name="org/apache/fop/util/SubInputStream.class"/>
+ <include name="org/apache/fop/util/Finalizable.class"/>
+ <include name="org/apache/fop/util/CharUtilities.class"/>
+ <include name="org/apache/fop/util/DecimalFormatCache*.class"/>
+ <include name="org/apache/fop/util/ImageObject.class"/>
+ </patternset>
+<!-- PDF transcoder -->
+ <patternset>
+ <include name="org/apache/fop/render/pdf/**"/>
+ <exclude name="org/apache/fop/render/pdf/PDFRenderer.class"/>
+ <exclude name="org/apache/fop/render/pdf/PDFXMLHandler*"/>
+ <include name="org/apache/fop/render/intermediate/IFDocumentHandlerConfigurator.class"/>
+ <include name="org/apache/fop/render/**Config**"/>
+ <include name="org/apache/fop/util/AbstractPaintingState**"/>
+ <include name="org/apache/fop/pdf/**"/>
+ </patternset>
+<!-- PS transcoder -->
+ <patternset>
+ <include name="org/apache/fop/render/ps/**"/>
+ <exclude name="org/apache/fop/render/pdf/PSRenderer.class"/>
+ <exclude name="org/apache/fop/render/pdf/PSXMLHandler*"/>
+ </patternset>
+ </patternset>
+ <fileset dir="${build.classes.dir}" id="transcoder-classes-files">
+ <patternset refid="transcoder-classes"/>
+ </fileset>
+ <fileset dir="${lib.dir}" id="transcoder-lib-files">
+ <include name="commons-io*.jar"/>
+ <include name="avalon-framework*.jar"/>
+ <include name="commons-logging*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ </fileset>
+ <target name="uptodate-transcoder-pkg" depends="compile">
+ <uptodate property="transcoder.pkg.uptodate" targetfile="${build.dir}/fop-transcoder.jar">
+ <srcfiles refid="transcoder-classes-files"/>
+ <srcfiles refid="transcoder-lib-files"/>
+ </uptodate>
+ </target>
+ <target name="transcoder-pkg" depends="remove-cache, uptodate-transcoder-pkg, compile" description="Generates the jar for the transcoder package for Batik" unless="transcoder.pkg.uptodate">
+ <echo message="Creating the jar file ${build.dir}/fop-transcoder.jar"/>
+ <property name="fop-transcoder.name" value="FOP Transcoder Package"/>
+ <property name="fop-transcoder.version" value="${version}"/>
+ <tstamp>
+ <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
+ </tstamp>
+<!-- lean transcoder jar -->
+ <jar jarfile="${build.dir}/fop-transcoder.jar">
+ <fileset refid="transcoder-classes-files"/>
+ <manifest>
+ <attribute name="Implementation-Title" value="${fop-transcoder.name}"/>
+ <attribute name="Implementation-Version" value="${fop-transcoder.version}"/>
+ <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/fop/)"/>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ </manifest>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+<!-- all-in-one transcoder jar -->
+ <property name="transcoder-deps" value="${build.dir}/transcoder-dependencies"/>
+ <mkdir dir="${transcoder-deps}"/>
+ <unjar dest="${transcoder-deps}">
+ <patternset>
+ <include name="org/apache/avalon/framework/*"/>
+ <include name="org/apache/avalon/framework/activity/*"/>
+ <include name="org/apache/avalon/framework/configuration/*"/>
+ <include name="org/apache/avalon/framework/container/*"/>
+ <include name="org/apache/commons/logging/**"/>
+ <include name="org/apache/commons/io/*.class"/>
+ <include name="org/apache/commons/io/filefilter/*.class"/>
+ <include name="org/apache/commons/io/output/*.class"/>
+ </patternset>
+ <fileset refid="transcoder-lib-files"/>
+ </unjar>
+ <mkdir dir="${transcoder-deps}/legal"/>
+ <copy todir="${transcoder-deps}/legal">
+ <fileset dir="${lib.dir}">
+ <include name="avalon.LICENSE.txt"/>
+ <include name="commons-io.LICENSE.txt"/>
+ <include name="commons-logging.LICENSE.txt"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${build.dir}/fop-transcoder-allinone.jar">
+ <fileset refid="transcoder-classes-files"/>
+ <fileset dir="${transcoder-deps}"/>
+ <manifest>
+ <attribute name="Implementation-Title" value="${fop-transcoder.name}"/>
+ <attribute name="Implementation-Version" value="${fop-transcoder.version}"/>
+ <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/fop/)"/>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ </manifest>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+ </target>
+ <target name="all" depends="package, servlet, transcoder-pkg, junit"/>
+<!-- "all" target for us Makefile converts ;-) -->
+<!-- =================================================================== -->
+<!-- Testing -->
+<!-- =================================================================== -->
+ <target name="junit-init" depends="init-avail" if="xmlunit.present">
+ <condition property="junit.formatter.brief.use">
+ <istrue value="${junit.formatter.brief}"/>
+ </condition>
+ </target>
+ <target name="junit-with-xmlunit" depends="junit-init" if="xmlunit.present">
+ <patternset id="test-sources"/>
+ </target>
+ <target name="junit-without-xmlunit" depends="junit-init" unless="xmlunit.present">
+ <patternset id="test-sources">
+ <exclude name="**/intermediate/*"/>
+ </patternset>
+ </target>
+ <target name="junit-compile-java" depends="package, transcoder-pkg, junit-with-xmlunit, junit-without-xmlunit" if="junit.present">
+ <mkdir dir="${build.unit.tests.dir}"/>
+ <mkdir dir="${build.dir}/test-gensrc"/>
+ <mkdir dir="${junit.reports.dir}"/>
+ <javac destdir="${build.unit.tests.dir}" includeAntRuntime="true">
+ <src path="${test.java.dir}"/>
+ <patternset refid="test-sources"/>
+ <classpath>
+ <path refid="libs-tools-build-classpath"/>
+ <fileset dir="${build.dir}">
+ <include name="fop.jar"/>
+ </fileset>
+ </classpath>
+ </javac>
+ <copy todir="${build.unit.tests.dir}">
+ <fileset dir="${test.java.dir}">
+ <include name="**/*.xsl"/>
+ <include name="**/*.txt"/>
+ <include name="**/*.afm"/>
+ <include name="**/*.fo"/>
+ <include name="**/*.svg"/>
+ </fileset>
+ </copy>
+ </target>
+ <target name="junit-compile-copy-resources" if="junit.present">
+ <eventResourceGenerator
+ destdir="${build.dir}/test-gensrc">
+ <fileset dir="${test.java.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ </eventResourceGenerator>
+ <copy todir="${build.unit.tests.dir}">
+ <fileset dir="${test.java.dir}">
+ <include name="META-INF/**"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.fo"/>
+ <include name="**/BidiTestData*.ser"/>
+ <include name="**/*.afp"/>
+ <include name="**/*.ps"/>
+ <include name="**/*.xsl"/>
+ </fileset>
+ <fileset dir="${build.dir}/test-gensrc">
+ <include name="**/*.xml"/>
+ </fileset>
+ </copy>
+ </target>
+ <target name="junit-compile" depends="junit-compile-java, junit-compile-copy-resources" description="Compiles FOP's JUnit tests" if="junit.present"/>
+ <target name="junit-transcoder" depends="junit-compile" description="Runs FOP's JUnit transcoder tests" if="junit.present">
+ <path id="transcoder-classpath">
+ <pathelement location="${build.unit.tests.dir}"/>
+ <path refid="libs-tools-build-classpath"/>
+ <fileset dir="${build.dir}">
+ <include name="fop-transcoder.jar"/>
+ </fileset>
+ </path>
+ <junit-run classpath="transcoder-classpath" title="basic functionality for fop-transcoder.jar" testsuite="org.apache.fop.BasicTranscoderTestSuite" outfile="TEST-transcoder"/>
+ <echo message="Running basic functionality tests for fop-transcoder-allinone.jar"/>
+ <!-- These are the same tests as in the block above but testing the "allinone" JAR
+ instead. Please don't add any additional paths other than the test classes, the
+ allinone JAR and the any Batik JARs to the classpath. If this fails, but the
+ previous test block succeeded it indicates that the packaging of the allinone
+ JAR needs to be updated.
+ -->
+ <path id="transcoder-all-classpath">
+ <pathelement location="${build.unit.tests.dir}"/>
+ <path refid="libs-tools-build-classpath"/>
+ <fileset dir="build">
+ <include name="fop-transcoder-allinone.jar"/>
+ </fileset>
+ <fileset dir="${lib.dir}">
+ <include name="xml-apis*.jar"/>
+ <include name="xerces*.jar"/>
+ <include name="batik*.jar"/>
+ </fileset>
+ </path>
+ <junit-run classpath="transcoder-all-classpath" title="basic functionality for fop-transcoder-allinone.jar" testsuite="org.apache.fop.BasicTranscoderTestSuite" outfile="TEST-transcoder-allinone"/>
+ </target>
+ <target name="hyphenation-present" depends="junit-compile" if="junit.present">
+ <condition property="hyphenation.present">
+ <and>
+<!-- All the hyphenation files required by the layout test cases to be listed here -->
+ <available resource="hyph/en.hyp" classpathref="libs-run-classpath"/>
+ <available resource="hyph/de.hyp" classpathref="libs-run-classpath"/>
+ </and>
+ </condition>
+ <condition property="hyphenation.message" value="Hyphenation Support PRESENT">
+ <equals arg1="${hyphenation.present}" arg2="true"/>
+ </condition>
+ <condition property="hyphenation.message" value="Hyphenation Support NOT Present - Layout tests which require hyphenation are NOT being run!">
+ <not>
+ <equals arg1="${hyphenation.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${hyphenation.message}"/>
+ </target>
+ <path id="standard-junit-classpath">
+ <pathelement location="${build.unit.tests.dir}"/>
+ <path refid="libs-tools-build-classpath"/>
+ <fileset dir="${build.dir}">
+ <include name="fop.jar"/>
+ <include name="fop-hyph.jar"/>
+ </fileset>
+ </path>
+ <macrodef name="junit-run">
+ <attribute name="title"/>
+ <attribute name="basedir" default=""/>
+ <attribute name="testsuite"/>
+ <attribute name="outfile"/>
+ <attribute name="classpath" default="standard-junit-classpath"/>
+ <sequential>
+ <echo message="Running @{title} tests..."/>
+ <junit dir="${basedir}" haltonfailure="yes" fork="${junit.fork}" forkmode="once"
+ errorproperty="fop.junit.error" failureproperty="fop.junit.failure" printsummary="${junit.printsummary}">
+ <sysproperty key="basedir" value="${basedir}/@{basedir}"/>
+ <sysproperty key="jawa.awt.headless" value="true"/>
+ <formatter type="brief" usefile="false" if="junit.formatter.brief.use"/>
+ <formatter type="plain" usefile="true"/>
+ <formatter type="xml" usefile="true"/>
+ <classpath>
+ <path refid="@{classpath}"/>
+ </classpath>
+ <assertions>
+ <enable/>
+ </assertions>
+ <test name="@{testsuite}" todir="${junit.reports.dir}" outfile="@{outfile}"/>
+ </junit>
+ </sequential>
+ </macrodef>
+ <target name="junit-all" depends="junit-compile, junit-transcoder, junit-layout-hyphenation"
+ description="Runs FOP's JUnit basic tests" if="junit.present">
+ <junit dir="${basedir}" haltonfailure="yes" fork="${junit.fork}" forkmode="once"
+ errorproperty="fop.junit.error" failureproperty="fop.junit.failure" printsummary="${junit.printsummary}">
+ <sysproperty key="jawa.awt.headless" value="true"/>
+ <formatter type="brief" usefile="false" if="junit.formatter.brief.use"/>
+ <formatter type="plain" usefile="true"/>
+ <formatter type="xml" usefile="true"/>
+ <classpath>
+ <path refid="standard-junit-classpath"/>
+ </classpath>
+ <assertions>
+ <enable/>
+ </assertions>
+ <batchtest todir="${junit.reports.dir}">
+ <fileset dir="${build.unit.tests.dir}" includes="**/*TestCase.class"/>
+ </batchtest>
+ </junit>
+ </target>
+ <target name="junit-basic" depends="junit-compile" description="Runs FOP's JUnit basic tests" if="junit.present">
+ <junit-run title="Standard test suite" testsuite="org.apache.fop.StandardTestSuite" outfile="TEST-standard-tests-suite"/>
+ </target>
+ <target name="junit-userconfig" depends="junit-compile" if="junit.present" description="Runs FOP's user config JUnit tests">
+ <junit-run title="user config" testsuite="org.apache.fop.config.UserConfigTestSuite" outfile="TEST-userconfig"/>
+ </target>
+ <target name="junit-layout-standard" depends="junit-compile, junit-fotree" if="junit.present" description="Runs FOP's standard JUnit layout tests">
+ <junit-run title="standard layout engine" testsuite="org.apache.fop.layoutengine.LayoutEngineTestSuite" outfile="TEST-layoutengine-standard"/>
+ </target>
+ <target name="junit-layout-hyphenation" depends="hyphenation-present, junit-compile" if="hyphenation.present" description="Runs FOP's JUnit hyphenation layout tests">
+ <junit-run title="hyphenation layout engine" testsuite="org.apache.fop.layoutengine.HyphenationLayoutTestCase"
+ outfile="TEST-layoutengine-hyphenation"/>
+ </target>
+ <target name="junit-layout" depends="junit-layout-standard, junit-layout-hyphenation" description="Runs all FOP's JUnit layout tests"/>
+ <target name="junit-fotree" depends="junit-compile" description="Runs FOP's FO tree JUnit tests" if="junit.present">
+ <junit-run title="fo tree" testsuite="org.apache.fop.fotreetest.FOTreeTestSuite" outfile="TEST-FO-tree"/>
+ </target>
+ <target name="junit-area-tree-xml-format" depends="junit-compile" description="Runs FOP's area tree XML format JUnit tests" if="xmlunit.present">
+ <junit-run title="area tree XML format" testsuite="org.apache.fop.intermediate.AreaTreeXMLFormatTestSuite" outfile="TEST-area-tree-xml-format"/>
+ </target>
+ <target name="junit-intermediate-layout" depends="junit-compile" if="xmlunit.present">
+ <junit-run title="intermediate format from layout tests"
+ testsuite="org.apache.fop.intermediate.LayoutIFTestSuite"
+ outfile="TEST-intermediate-format-from-layout"/>
+ </target>
+
+ <target name="junit-intermediate-format" depends="junit-compile,junit-intermediate-layout"
+ description="Runs FOP's intermediate format JUnit tests" if="xmlunit.present">
+ <junit-run title="intermediate format"
+ testsuite="org.apache.fop.intermediate.IntermediateFormatTestSuite"
+ outfile="TEST-intermediate-format"/>
+ </target>
+ <target name="junit-events" depends="junit-compile" description="Runs FOP's event JUnit tests" if="junit.present">
+ <junit-run title="event" testsuite="org.apache.fop.events.EventProcessingTestCase" outfile="TEST-events"/>
+ </target>
+ <target name="junit-text-linebreak" depends="junit-compile" description="Runs FOP's JUnit unicode linebreak tests" if="junit.present">
+ <junit-run title="Unicode UAX#14 support" testsuite="org.apache.fop.text.linebreak.LineBreakStatusTestCase" outfile="TEST-linebreak"/>
+ </target>
+ <target name="junit-fonts" depends="junit-compile">
+ <echo message="Running tests for the fonts package"/>
+ <junit-run title="fonts" testsuite="org.apache.fop.fonts.FOPFontsTestSuite" outfile="TEST-fonts"/>
+ </target>
+ <target name="junit-render-ps" depends="junit-compile">
+ <echo message="Running tests for the render ps package"/>
+ <junit-run title="render-ps" testsuite="org.apache.fop.render.ps.RenderPSTestSuite" outfile="TEST-render-ps"/>
+ </target>
+ <target name="junit-render-pdf" depends="junit-compile">
+ <junit-run title="render-pdf" testsuite="org.apache.fop.render.pdf.RenderPDFTestSuite" outfile="TEST-render-pdf"/>
+ </target>
+ <target name="junit-complexscripts" depends="junit-compile">
+ <junit-run title="complexscripts" testsuite="org.apache.fop.complexscripts.ComplexScriptsTestSuite" outfile="TEST-complexscripts"/>
+ </target>
+ <target name="junit-complexscripts-layout" depends="junit-compile" if="junit.present">
+ <junit-run title="standard layout engine" testsuite="org.apache.fop.complexscripts.layout.ComplexScriptsLayoutTestSuite" outfile="TEST-complexscripts-layout"/>
+ </target>
+ <target name="junit-reduced" depends="junit-userconfig, junit-basic, junit-transcoder,
+ junit-text-linebreak, junit-fotree, junit-fonts, junit-render-pdf, junit-render-ps,
+ junit-complexscripts, junit-complexscripts-layout"/>
+ <target name="junit" depends="remove-cache, junit-all" description="Runs all of FOP's JUnit tests"
+ if="junit.present">
+ <fail><condition><or><isset property="fop.junit.error"/><isset
+ property="fop.junit.failure"/><not><isset
+ property="hyphenation.present"/></not></or></condition>
+NOTE:
+**************************************************************************
+* One or more of the Junit tests had Failures or Errors or were skipped! *
+* Please check the output above for relevant messages. *
+* Or use the "junit-reports" target to generate HTML test reports. *
+**************************************************************************
+ </fail>
+ <echo>All Junit tests passed!</echo>
+ <echo>Use the "junit-reports" target to generate HTML test reports</echo>
+ </target>
+<!-- haven't made this dependent on "junit" as that would rerun all tests -->
+ <target name="junit-reports" description="Generates HTML test reports">
+ <mkdir dir="${junit.html.reports.dir}"/>
+ <junitreport todir="${junit.reports.dir}">
+ <fileset dir="${junit.reports.dir}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report format="frames" todir="${junit.html.reports.dir}"/>
+ </junitreport>
+ <echo>JUnit HTML test reports should be available in ${junit.html.reports.dir}</echo>
+ </target>
+<!-- =================================================================== -->
+<!-- Creates the API documentation -->
+<!-- =================================================================== -->
+ <target name="javadocs" depends="codegen" description="Generates javadocs">
+<!--condition property="javadoc.version.ok">
+ <not>
+ <or>
+ <equals arg1="${ant.java.version}" arg2="1.1"/>
+ <equals arg1="${ant.java.version}" arg2="1.2"/>
+ <equals arg1="${ant.java.version}" arg2="1.3"/>
+ </or>
+ </not>
+ </condition>
+ <fail message="Building FOP javadocs requires at least Java 1.4" unless="javadoc.version.ok"/-->
+ <property name="javadoc.public" value="false"/>
+ <property name="javadoc.package" value="false"/>
+ <property name="javadoc.private" value="false"/>
+ <condition property="javadoc.level" value=" (level: private)">
+ <equals arg1="${javadoc.private}" arg2="true"/>
+ </condition>
+ <condition property="javadoc.level" value=" (level: package)">
+ <equals arg1="${javadoc.package}" arg2="true"/>
+ </condition>
+ <condition property="javadoc.level" value=" (level: public)">
+ <equals arg1="${javadoc.public}" arg2="true"/>
+ </condition>
+ <property name="javadoc.level" value=""/>
+ <echo message="Producing the javadoc files${javadoc.level}"/>
+ <mkdir dir="${build.javadocs.dir}"/>
+ <javadoc failonerror="true" source="${javac.source}" destdir="${build.javadocs.dir}"
+ packagenames="${javadoc.packages}"
+ public="${javadoc.public}" package="${javadoc.package}" private="${javadoc.private}"
+ author="true" version="true" use="true"
+ windowtitle="${Name} ${version} API"
+ doctitle="Apache Formatting Objects Processor (FOP)"
+ bottom="Copyright ${year} The Apache Software Foundation. All Rights Reserved."
+ overview="${src.java.dir}/org/apache/fop/overview.html"
+ maxmemory="256M">
+ <header><![CDATA[${name} ${version}]]></header>
+ <footer><![CDATA[${name} ${version}]]></footer>
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement path="${java.class.path}"/>
+ </classpath>
+ <sourcepath>
+ <pathelement path="${src.java.dir}"/>
+ <pathelement path="${src.sandbox.dir}"/>
+ <pathelement path="${build.gensrc.dir}"/>
+ </sourcepath>
+ <tag name="asf.todo" scope="all" description="TODO"/>
+ <tag name="event.severity" scope="all" description="Event severity level:"/>
+ <group title="Control and Startup">
+ <package name="org.apache.fop"/>
+ <package name="org.apache.fop.apps"/>
+ <package name="org.apache.fop.cli"/>
+ <package name="org.apache.fop.configuration"/>
+ <package name="org.apache.fop.messaging"/>
+ <package name="org.apache.fop.servlet"/>
+ </group>
+ <group title="XSL-FO Tree">
+ <package name="org.apache.fop.fo"/>
+ <package name="org.apache.fop.fo.*"/>
+ <package name="org.apache.fop.datatypes"/>
+ <package name="org.apache.fop.extensions"/>
+ </group>
+ <group title="Layout">
+ <package name="org.apache.fop.layoutmgr"/>
+ <package name="org.apache.fop.layoutmgr.*"/>
+ </group>
+ <group title="Area Tree">
+ <package name="org.apache.fop.area"/>
+ <package name="org.apache.fop.area.*"/>
+ <package name="org.apache.fop.traits"/>
+ </group>
+ <group title="Paginated Rendering">
+ <package name="org.apache.fop.render"/>
+ <package name="org.apache.fop.render.*"/>
+ </group>
+ <group title="Structural Rendering">
+ <package name="org.apache.fop.render.rtf"/>
+ <package name="org.apache.fop.render.mif"/>
+ </group>
+ <group title="Fonts">
+ <package name="org.apache.fop.fonts"/>
+ <package name="org.apache.fop.fonts.*"/>
+ </group>
+ <group title="Events">
+ <package name="org.apache.fop.events"/>
+ <package name="org.apache.fop.events.*"/>
+ </group>
+ <group title="Utility">
+ <package name="org.apache.fop.hyphenation"/>
+ <package name="org.apache.fop.tools"/>
+ <package name="org.apache.fop.tools.*"/>
+ <package name="org.apache.fop.image"/>
+ <package name="org.apache.fop.image.*"/>
+ <package name="org.apache.fop.text.*"/>
+ <package name="org.apache.fop.util"/>
+ <package name="org.apache.fop.util.*"/>
+ </group>
+ <group title="AFP library">
+ <package name="org.apache.fop.afp"/>
+ <package name="org.apache.fop.afp.*"/>
+ </group>
+ <group title="PDF library">
+ <package name="org.apache.fop.pdf"/>
+ <package name="org.apache.fop.svg"/>
+ </group>
+ <group title="RTFLib (formerly JFor) Subpackage Candidate">
+ <package name="org.apache.fop.render.rtf.rtflib"/>
+ <package name="org.apache.fop.render.rtf.rtflib.*"/>
+ </group>
+ </javadoc>
+ </target>
+ <target name="jar-javadocs" depends="javadocs" description="Generates a jar file containing the Javadocs">
+ <jar jarfile="${build.dir}/${name}-${version}-javadoc.jar">
+ <manifest>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}, Target Java ${javac.target}])"/>
+ </manifest>
+ <fileset dir="${build.javadocs.dir}"/>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+ </target>
+<!-- =================================================================== -->
+<!-- Checkstyle -->
+<!-- =================================================================== -->
+ <property name="checkstyle.location" value="${lib-tools}/checkstyle-5.5-all.jar" />
+ <property name="checkstyle.config" value="${basedir}/checkstyle-5.5.xml" />
+ <path id="checkstyle-classpath">
+ <pathelement location="${checkstyle.location}"/>
+ </path>
+ <condition property="checkstyle.avail">
+ <and>
+ <available classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
+ <classpath refid="checkstyle-classpath"/>
+ </available>
+ <available file="${checkstyle.config}"/>
+ </and>
+ </condition>
+ <target name="checkstyle-avail" unless="checkstyle.avail">
+ <echo message="Checkstyle support NOT present. Please download it from http://checkstyle.sf.net/ and"/>
+ <echo message="... please provide ${checkstyle.location}"/>
+ <echo message="... please provide ${checkstyle.config}"/>
+ </target>
+ <target name="checkstyle" depends="package, checkstyle-avail" if="checkstyle.avail" description="Runs Checkstyle for a code quality report">
+ <taskdef name="checkstyle" classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle-classpath"/>
+ <mkdir dir="${build.dir}"/>
+ <checkstyle config="${checkstyle.config}" failonviolation="true" maxWarnings="0">
+ <classpath>
+ <path refid="checkstyle-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ <pathelement location="${build.sandbox-classes.dir}"/>
+ <pathelement location="${build.codegen-classes.dir}"/>
+ </classpath>
+ <fileset dir="${src.dir}" includes="**/*.java"/>
+ <fileset dir="${test.dir}" includes="**/*.java"/>
+ <formatter type="xml" toFile="${build.dir}/report_checkstyle.xml"/>
+ <formatter type="plain"/>
+ </checkstyle>
+ </target>
+<!-- =================================================================== -->
+<!-- PMD -->
+<!-- =================================================================== -->
+ <target name="pmd" depends="init" description="Runs PMD for a code quality report">
+ <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <path refid="libs-tools-build-classpath"/>
+ </classpath>
+ </taskdef>
+ <mkdir dir="${build.dir}"/>
+ <pmd shortFilenames="true" targetjdk="${javac.target}">
+ <ruleset>basic</ruleset>
+ <ruleset>rulesets/migrating_to_14.xml</ruleset>
+ <ruleset>sunsecure</ruleset>
+ <formatter type="html" toFile="${build.dir}/report_pmd.html"/>
+ <fileset dir="${src.java.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ </pmd>
+ </target>
+
+ <target name="cpd" depends="init" description="Runs PMD/CDP for a code quality report">
+ <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask">
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <path refid="libs-tools-build-classpath"/>
+ </classpath>
+ </taskdef>
+ <cpd minimumTokenCount="100" outputFile="${build.dir}/report_cpd.txt">
+ <fileset dir="${src.java.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ </cpd>
+ </target>
+<!-- =================================================================== -->
+<!-- Findbugs -->
+<!-- =================================================================== -->
+ <target name="findbugs-maybe-describe-install" unless="findbugs.present">
+ <echo message="Please download FINDBUGS from http://findbugs.sf.net/ and set property findbugs.home.dir"/>
+ <echo message="in build-local.properties to the top-level directory of the binary distribution."/>
+ </target>
+ <target name="findbugs-avail">
+ <condition property="findbugs.present">
+ <and>
+ <isset property="findbugs.home.dir"/>
+ <available file="${findbugs.home.dir}" type="dir"/>
+ </and>
+ </condition>
+ <condition property="findbugs.message" value="FINDBUGS Support PRESENT">
+ <equals arg1="${findbugs.present}" arg2="true"/>
+ </condition>
+ <condition property="findbugs.message" value="FINDBUGS Support NOT Present">
+ <not>
+ <equals arg1="${findbugs.present}" arg2="true"/>
+ </not>
+ </condition>
+ <echo message="${findbugs.message}"/>
+ <antcall target="findbugs-maybe-describe-install"/>
+ </target>
+ <target name="findbugs-exec" depends="compile-java" if="findbugs.present">
+ <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
+ <classpath>
+ <fileset dir="${findbugs.home.dir}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </classpath>
+ </taskdef>
+ <findbugs home="${findbugs.home.dir}" output="${findbugs.output.format}" reportLevel="low" effort="max"
+ outputFile="${build.dir}/report_findbugs.${findbugs.output.extension}" excludeFilter="findbugs-exclude.xml" jvmargs="-Xmx1024m" warningsProperty="findbugs.warnings">
+ <sourcePath path="${src.java.dir}"/>
+ <class location="${build.classes.dir}"/>
+ <auxClasspath>
+ <path refid="libs-build-classpath"/>
+ <path>
+ <fileset dir="${ant.library.dir}">
+ <include name="ant.jar"/>
+ <include name="ant-launcher.jar"/>
+ </fileset>
+ </path>
+ </auxClasspath>
+ </findbugs>
+ <fail if="findbugs.warnings"/>
+ </target>
+ <target name="findbugs-xml" depends="findbugs-avail" if="findbugs.present" description="Runs findbugs for a code quality report in XML">
+ <property name="findbugs.output.format" value="xml"/>
+ <property name="findbugs.output.extension" value="xml"/>
+ <antcall target="findbugs-exec"/>
+ </target>
+ <target name="findbugs-html" depends="findbugs-avail" if="findbugs.present" description="Runs findbugs for a code quality report in HTML">
+ <property name="findbugs.output.format" value="html"/>
+ <property name="findbugs.output.extension" value="html"/>
+ <antcall target="findbugs-exec"/>
+ </target>
+ <target name="findbugs" depends="findbugs-html" description="Runs findbugs for a code quality report in HTML"/>
+<!-- =================================================================== -->
+<!-- Creates the reports -->
+<!-- =================================================================== -->
+ <target name="reports" depends="checkstyle, pmd, cpd, findbugs" description="Runs all configured code quality reports"/>
+<!-- =================================================================== -->
+<!-- Creates the documentation - (CL20130210 moved to ASF-CMS) -->
+<!-- =================================================================== -->
+<!-- =================================================================== -->
+<!-- Creates the distribution -->
+<!-- =================================================================== -->
+<!-- It would be better to make dist depend on distclean. But as long as the forrest projectInfo plugin depends on a higher Java version (1.5) than we use for the compilation (1.4), leaving it out enables a workaround -->
+ <target name="dist" depends="dist-prereq,dist-src,dist-bin,maven-artifacts" description="Generates the distribution package"/>
+ <target name="dist-prereq" depends="init,dist-get-jai">
+ <fail message="A complete binary build requires JAI" unless="jai.present"/>
+ <fail message="A complete binary build requires JCE" unless="jce.present"/>
+ </target>
+ <target name="dist-get-jai" description="Attempts to download the JAI library dependency" unless="jai.present">
+ <echo message="JAI Support NOT present - attempting to download... "/>
+ <get src="http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib.zip" dest="${java.io.tmpdir}/jai-1_1_3-lib.zip" verbose="true" />
+ <unzip src="${java.io.tmpdir}/jai-1_1_3-lib.zip" dest="${java.io.tmpdir}">
+ <patternset>
+ <include name="jai-1_1_3/lib/*"/>
+ </patternset>
+ </unzip>
+ <copy todir="${basedir}/lib" file="${java.io.tmpdir}/jai-1_1_3/lib/jai_core.jar" />
+ <copy todir="${basedir}/lib" file="${java.io.tmpdir}/jai-1_1_3/lib/jai_codec.jar" />
+ <delete dir="${java.io.tmpdir}/jai-1_1_3" />
+ <delete file="${java.io.tmpdir}/jai-1_1_3-lib.zip" />
+ <property name="jai.present" value="true"/>
+ </target>
+ <target name="dist-bin" depends="all,javadocs">
+ <echo message="Building the binary distribution files (zip,tar)"/>
+ <mkdir dir="${dist.bin.result.dir}"/>
+ <copy todir="${dist.bin.result.dir}">
+ <fileset refid="dist.bin"/>
+ <fileset refid="dist.bin.lib"/>
+ </copy>
+ <copy todir="${dist.bin.result.dir}/javadocs">
+ <fileset dir="${build.javadocs.dir}"/>
+ </copy>
+ <mkdir dir="${dist.bin.result.dir}/build"/>
+ <copy todir="${dist.bin.result.dir}/build" file="build/fop.jar"/>
+ <chmod file="${dist.bin.result.dir}/fop" perm="ugo+rx"/>
+ <zip zipfile="${name}-${version}-bin.zip" basedir="${dist.bin.dir}" includes="**"/>
+ <tar longfile="gnu" destfile="${name}-${version}-bin.tar">
+ <tarfileset dir="${dist.bin.dir}" mode="755">
+ <include name="${name}-${version}/fop"/>
+ </tarfileset>
+ <tarfileset dir="${dist.bin.dir}">
+ <include name="**"/>
+ <exclude name="${name}-${version}/fop"/>
+ </tarfileset>
+ </tar>
+ <gzip zipfile="${name}-${version}-bin.tar.gz" src="${name}-${version}-bin.tar"/>
+ <delete file="${name}-${version}-bin.tar"/>
+ </target>
+ <target name="dist-src">
+ <echo message="Building the source distribution files (zip,tar)"/>
+ <mkdir dir="${dist.src.result.dir}"/>
+ <copy todir="${dist.src.result.dir}">
+ <fileset refid="dist.src"/>
+ </copy>
+ <chmod file="${dist.src.result.dir}/fop" perm="ugo+rx"/>
+ <zip zipfile="${name}-${version}-src.zip" basedir="${dist.src.dir}" includes="**"/>
+ <tar longfile="gnu" destfile="${name}-${version}-src.tar">
+ <tarfileset dir="${dist.src.dir}" mode="755">
+ <include name="${name}-${version}/fop"/>
+ </tarfileset>
+ <tarfileset dir="${dist.src.dir}">
+ <include name="**"/>
+ <exclude name="${name}-${version}/fop"/>
+ </tarfileset>
+ </tar>
+ <gzip zipfile="${name}-${version}-src.tar.gz" src="${name}-${version}-src.tar"/>
+ <delete file="${name}-${version}-src.tar"/>
+ </target>
+ <target name="release-dist" depends="dist" description="Generates the distribution package and signs the release">
+ <property name="bin.suffix" value="bin"/>
+ <input message="Passphrase for your default private key (attention: passphrase will be echoed in clear text on the display!)" addproperty="pwd"/>
+ <antcall target="md5">
+ <param name="sign.archive" value="${name}-${version}-src.zip"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${name}-${version}-src.zip"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="md5">
+ <param name="sign.archive" value="${name}-${version}-src.tar.gz"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${name}-${version}-src.tar.gz"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="md5">
+ <param name="sign.archive" value="${name}-${version}-${bin.suffix}.zip"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${name}-${version}-${bin.suffix}.zip"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="md5">
+ <param name="sign.archive" value="${name}-${version}-${bin.suffix}.tar.gz"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${name}-${version}-${bin.suffix}.tar.gz"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ </target>
+ <target name="md5">
+ <property name="md5.exec" value="md5sum"/>
+ <property name="md5.options" value=""/>
+ <exec executable="${md5.exec}" output="${sign.archive}.md5">
+ <arg line="${md5.options} ${sign.archive}"/>
+ </exec>
+ </target>
+ <target name="sign-file">
+ <property name="gpg.exec" value="gpg"/>
+ <property name="gpg.options" value="--armor --detach-sign --force-v3-sigs --batch --verbose --passphrase-fd 0"/>
+ <delete file="${sign.archive}.asc"/>
+ <exec executable="${gpg.exec}" inputstring="${pwd}">
+ <arg line="${gpg.options} ${sign.archive}"/>
+ </exec>
+ </target>
+<!-- =================================================================== -->
+<!-- Maven artifacts -->
+<!-- =================================================================== -->
+ <target name="maven-artifacts" depends="jar-main, jar-sources, jar-javadocs" description="Builds a Maven artifact that can be uploaded to a Maven repository">
+ <filter token="version" value="${version}"/>
+ <mkdir dir="${build.dir}/maven"/>
+ <copy file="${basedir}/xmlgraphics-fop-pom-template.pom" tofile="${build.dir}/maven/pom.xml" filtering="true"/>
+ <copy file="${build.dir}/${name}.jar" tofile="${build.dir}/${name}-${version}.jar"/>
+ <fileset id="bundle-files" dir="${build.dir}">
+ <patternset>
+ <include name="${name}-${version}.jar"/>
+ <include name="${name}-${version}-sources.jar"/>
+ <include name="${name}-${version}-javadoc.jar"/>
+ </patternset>
+ <patternset>
+ <include name="maven/pom.xml"/>
+ </patternset>
+ </fileset>
+ <checksum algorithm="md5">
+ <fileset refid="bundle-files"/>
+ </checksum>
+ <checksum algorithm="sha1">
+ <fileset refid="bundle-files"/>
+ </checksum>
+ <input message="Passphrase for your default private key (attention: passphrase will be echoed in clear text on the display!)" addproperty="pwd"/>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${build.dir}/${name}-${version}.jar"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${build.dir}/${name}-${version}-sources.jar"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${build.dir}/${name}-${version}-javadoc.jar"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <antcall target="sign-file">
+ <param name="sign.archive" value="${build.dir}/maven/pom.xml"/>
+ <param name="pwd" value="${pwd}"/>
+ </antcall>
+ <jar jarfile="${build.dir}/${name}-${version}-bundle.jar">
+ <manifest>
+ <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
+ </manifest>
+ <fileset dir="${build.dir}">
+ <patternset>
+ <include name="${name}-${version}.jar*"/>
+ <include name="${name}-${version}-sources.jar*"/>
+ <include name="${name}-${version}-javadoc.jar*"/>
+ </patternset>
+ </fileset>
+ <fileset dir="${build.dir}/maven">
+ <patternset>
+ <include name="pom.xml*"/>
+ </patternset>
+ </fileset>
+ <metainf dir="${basedir}" includes="../LICENSE,../NOTICE"/>
+ </jar>
+ <move file="${build.dir}/${name}-${version}-bundle.jar" todir="${basedir}"/>
+ </target>
+<!-- =================================================================== -->
+<!-- Nightly builds -->
+<!-- =================================================================== -->
+ <target name="junit-nightly-build" depends="junit-userconfig,junit-text-linebreak,junit-fotree">
+ <fail>
+ <condition>
+ <or>
+ <isset property="fop.junit.error"/>
+ <isset property="fop.junit.failure"/>
+ </or>
+ </condition>
+NOTE:
+**************************************************************************
+* One or more of the Junit tests had Failures or Errors or were skipped! *
+* Please check the output above for relevant messages. *
+* Or use the "junit-reports" target to generate HTML test reports. *
+**************************************************************************
+ </fail>
+ <echo>All Junit tests passed!</echo>
+ </target>
+ <target name="nightly-build" depends="clean,jar-main,junit-nightly-build">
+ <echo message="Building the binary distribution files (zip,tar)"/>
+ <delete dir="${nightly.dir}"/>
+ <mkdir dir="${nightly.result.dir}"/>
+ <copy todir="${nightly.result.dir}">
+ <fileset refid="dist.bin"/>
+ <fileset refid="dist.bin.lib"/>
+ </copy>
+ <mkdir dir="${nightly.result.dir}/build"/>
+ <copy todir="${nightly.result.dir}/build" file="build/fop.jar"/>
+ <chmod file="${nightly.result.dir}/fop" perm="ugo+rx"/>
+ <zip zipfile="${name}-${DSTAMP}-bin.zip" basedir="${nightly.dir}" includes="**"/>
+ <tar longfile="gnu" destfile="${name}-${DSTAMP}-bin.tar">
+ <tarfileset dir="${nightly.dir}" mode="755">
+ <include name="${name}-${DSTAMP}/fop"/>
+ </tarfileset>
+ <tarfileset dir="${nightly.dir}">
+ <include name="**"/>
+ <exclude name="${name}-${DSTAMP}/fop"/>
+ </tarfileset>
+ </tar>
+ <gzip zipfile="${name}-${DSTAMP}-bin.tar.gz" src="${name}-${DSTAMP}-bin.tar"/>
+ <delete file="${name}-${DSTAMP}-bin.tar"/>
+ </target>
+<!-- =================================================================== -->
+<!-- Generate examples -->
+<!-- =================================================================== -->
+ <target name="examples" depends="package" description="Generates the example files">
+ <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop" classpathref="libs-run-classpath"/>
+ <mkdir dir="${build.examples.dir}"/>
+ <fop format="${build.property.examples.mime.type}" outdir="${build.examples.dir}" messagelevel="debug" basedir="${fo.examples.dir}" userconfig="${fo.examples.userconfig}" force="${fo.examples.force}">
+ <fileset dir="${fo.examples.dir}">
+ <include name="${fo.examples.include}"/>
+ </fileset>
+ </fop>
+ </target>
+
+<!-- =================================================================== -->
+<!-- Generate unit tests -->
+<!-- =================================================================== -->
+ <target name="tests" depends="package" description="Generates the test files">
+ <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop" classpathref="libs-run-classpath"/>
+ <mkdir dir="${build.tests.dir}"/>
+ <fop format="${build.property.tests.mime.type}" xsltfile="${test.dir}/layoutengine/testcase2fo.xsl" outdir="${build.tests.dir}" messagelevel="debug" basedir="${test.dir}" userconfig="${fo.examples.userconfig}" force="${xml.tests.force}">
+ <fileset dir="${test.dir}">
+ <include name="${xml.tests.include}"/>
+ </fileset>
+ </fop>
+ </target>
+
+<!-- =================================================================== -->
+<!-- Helper task to generate source files that have already been -->
+<!-- checked into CVS. For these files, CVS version is the official one -->
+<!-- and may have updates that will *not* be generated by below. This -->
+<!-- target should never be part of the normal build process. -->
+<!-- =================================================================== -->
+ <target name="codegen-fo">
+ <style in="${src.codegen.dir}/fo/constants.xml" style="${src.codegen.dir}/fo/constants.xsl" out="Constants.java"/>
+ <style in="${src.codegen.dir}/fo/foelements.xml" style="${src.codegen.dir}/fo/property-sets.xsl" out="PropertySets.java"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Helper tasks to generate source files that have already been checked -->
+ <!-- into the repository. For these files, the version in the -->
+ <!-- repository is the official one and may have updates that will *not* -->
+ <!-- be generated by below. This target should never be part of the -->
+ <!-- normal build process. -->
+ <!-- =================================================================== -->
+ <target name="codegen-unicode" depends="compile-java">
+ <mkdir dir="${build.codegen-classes.dir}"/>
+ <javac destdir="${build.codegen-classes.dir}">
+ <src path="${src.codegen.dir}/unicode/java"/>
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ <pathelement location="${build.codegen-classes.dir}"/>
+ </classpath>
+ </javac>
+ <java classname="org.apache.fop.text.linebreak.GenerateLineBreakUtils" classpath="${build.codegen-classes.dir}">
+ <arg line="-o ${src.java.dir}/org/apache/fop/text/linebreak/LineBreakUtils.java"/>
+ </java>
+ </target>
+ <target name="codegen-unicode-bidi" depends="compile-java">
+ <mkdir dir="${build.codegen-classes.dir}"/>
+ <javac destdir="${build.codegen-classes.dir}" includeAntRuntime="true">
+ <src path="${src.codegen.dir}/unicode/java"/>
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ <pathelement location="${build.codegen-classes.dir}"/>
+ </classpath>
+ </javac>
+ <java classname="org.apache.fop.complexscripts.bidi.GenerateBidiClass" classpath="${build.codegen-classes.dir}">
+ <arg line="-b http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBidiClass.txt"/>
+ <arg line="-o ${src.java.dir}/org/apache/fop/complexscripts/bidi/BidiClass.java"/>
+ </java>
+ <delete>
+ <fileset dir="${test.java.dir}/org/apache/fop/complexscripts/bidi">
+ <include name="**/BidiTestData*.ser"/>
+ </fileset>
+ </delete>
+ <java classname="org.apache.fop.text.bidi.GenerateBidiTestData" classpath="${build.codegen-classes.dir}" fork="yes">
+ <arg line="-v"/>
+ <arg line="-i"/>
+ <arg line="-b http://www.unicode.org/Public/6.0.0/ucd/BidiTest.txt"/>
+ <arg line="-d http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt"/>
+ <arg line="-o ${test.java.dir}/org/apache/fop/complexscripts/bidi/BidiTestData.java"/>
+ </java>
+ </target>
+ <target name="resgen-complexscripts" depends="compile-java">
+ <mkdir dir="${build.unit.tests.dir}"/>
+ <javac destdir="${build.unit.tests.dir}" includeAntRuntime="true" memoryMaximumSize="1024m">
+ <src path="${test.java.dir}/org/apache/fop/complexscripts/"/>
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ </classpath>
+ </javac>
+ <java classname="org.apache.fop.complexscripts.scripts.arabic.GenerateArabicTestData">
+ <classpath>
+ <path refid="libs-build-classpath"/>
+ <pathelement location="${build.classes.dir}"/>
+ <pathelement location="${build.unit.tests.dir}"/>
+ </classpath>
+ <arg line="-c"/>
+ </java>
+ </target>
+<!-- =================================================================== -->
+<!-- Special target for Gump -->
+<!-- =================================================================== -->
+ <target name="gump"/>
+ <target name="gump-test"/>
+<!-- =================================================================== -->
+<!-- Clean targets -->
+<!-- =================================================================== -->
+ <target name="clean" description="Cleans the build directory">
+ <delete dir="${build.dir}"/>
+ </target>
+ <target name="remove-cache" description="Removes the .fop cache directory">
+ <delete dir="${user.home}/.fop" />
+ </target>
+ <target name="distclean" depends="clean" description="Cleans the distribution target directories">
+ <delete dir="${dist.src.dir}"/>
+ <delete dir="${dist.bin.dir}"/>
+ <delete>
+ <fileset dir="${basedir}" includes="${name}-*.tar.gz"/>
+ <fileset dir="${basedir}" includes="${name}-*.zip"/>
+ <fileset dir="${basedir}" includes="${name}-bundle.jar"/>
+ </delete>
+ </target>
+<!-- =================================================================== -->
+<!-- Local targets -->
+<!-- =================================================================== -->
+ <import file="build-local.targets.xml" optional="true"/>
+
+</project>