blob: 8f2f434e44ca6479d4c21cd7ad0cdf356da2c413 [file] [log] [blame]
<!--
Blame:
Miles Parker <milesparker@gmail.com>
Some of the code below is
(c) Chris Aniszczyk <caniszczyk@gmail.com>
(c) Lawrence Mandel <lmandel@ca.ibm.com>
(c) Peter Friese <peter.friese@itemis.com>
-->
<project name="build-eclipse-documentation" default="build-all-books" basedir=".">
<property name="bundle.version" value="1.0.0" />
<!--Assumes that documentation git repos is parallel to virgo.ide location. This will break on Hudson! We should replace with ant git.-->
<property name="virgo.docs.dir" value="../../org.eclipse.virgo.documentation" />
<property name="greenpages.docs.dir" value="../../org.eclipse.virgo.sample-greenpages/guide" />
<property name="bundlor.docs.dir" value="../../org.eclipse.virgo.bundlor/user-guide" />
<property name="wiki.docs.dir" value="${virgo.docs.dir}/wiki-guide" />
<property name="book" value="tooling" />
<property name="current-loc" location="." />
<property name="temp.dir" value="${basedir}/tmp" />
<property name="xalan" value="org.apache.xalan.processor.TransformerFactoryImpl" />
<taskdef name="xinclude" classname="org.eclipse.wst.xsl.core.internal.ant.XIncludeTask" />
<property name="docbook.version" value="1.76.0" />
<property name="fop.version" value="1.0" />
<!--
Global vars
-->
<property name="document.name" value="virgo" />
<property name="document.eclipse.stylesheet" value="${basedir}/styles/eclipsehelp.xsl" />
<property name="document.chunk" value="${basedir}/styles/chunk.xsl" />
<property name="eclipsehelp-css.file" value="${basedir}/styles/book.css" />
<property name="html-css.file" value="${basedir}/styles/book.css" />
<property name="download.dir" value="${java.io.tmpdir}${file.separator}downloads" />
<echo>Files downloaded to: ${java.io.tmpdir}${file.separator}downloads</echo>
<!--
DocBook Toolchain
-->
<!-- <property name="docbook.version" value="1.73.2" /> -->
<property name="docbook.dir" value="${download.dir}${file.separator}docbook-xsl-${docbook.version}" />
<property name="docbookxsl.url" value="http://downloads.sourceforge.net/project/docbook/docbook-xsl/${docbook.version}/docbook-xsl-${docbook.version}.zip" />
<property name="fop.dir" value="${download.dir}${file.separator}fop-${fop.version}" />
<property name="fop.url" value="http://www.apache.org/dist//xmlgraphics/fop/binaries/fop-${fop.version}-bin.zip" />
<property name="jai.dir" value="ENTER_JAI_DIRECTORY" />
<macrodef name="git">
<attribute name="command" />
<attribute name="dir" default="" />
<element name="args" optional="true" />
<sequential>
<echo message="git @{command}" />
<exec executable="git" dir="@{dir}">
<arg value="@{command}" />
<args />
</exec>
</sequential>
</macrodef>
<target name="init">
<mkdir dir="${download.dir}" />
</target>
<target name="check-docbook">
<condition property="hasDocbook">
<and>
<available file="${download.dir}${file.separator}docbook.zip" property="hasDocbookZip" />
<available file="${docbook.dir}" type="dir" property="hasDocbookDir" />
</and>
</condition>
</target>
<target name="check-fop">
<condition property="hasFOP">
<and>
<available file="${download.dir}${file.separator}fop.zip" property="hasFOPZip" />
<available file="${fop.dir}" type="dir" property="hasFOPDir" />
</and>
</condition>
</target>
<target name="get-extra-styles" depends="check-docbook">
<echo>Adding Eclipse styles...</echo>
<copy todir="${docbook.dir}/eclipse/">
<fileset dir="${basedir}/styles" erroronmissingdir="true">
<include name="*.xsl" />
</fileset>
</copy>
</target>
<target name="get-docbook-xsl" description="Downloads docbook xsl" depends="check-docbook" unless="hasDocbook">
<echo>Downloading DocBook XSL...</echo>
<get dest="${download.dir}${file.separator}docbook.zip" src="${docbookxsl.url}" />
<unzip src="${download.dir}${file.separator}docbook.zip" dest="${download.dir}" />
</target>
<target name="get-fop" description="Downloads FOP" depends="check-fop" unless="hasFOP">
<echo>Downloading FOP...</echo>
<get dest="${download.dir}${file.separator}fop.zip" src="${fop.url}" />
<unzip src="${download.dir}${file.separator}fop.zip" dest="${download.dir}" />
</target>
<target name="clean-temp">
<echo>Deleting: ${temp.dir}</echo>
<mkdir dir="${temp.dir}" />
</target>
<target name="clean-book">
<echo>Deleting: ${basedir}/${book}</echo>
<mkdir dir="${basedir}/${book}" />
</target>
<target name="copy-book" depends="clean-book">
<echo>Copying documentation from: ${virgo.docs.dir}/${book}-guide to ${temp.dir}/${book}</echo>
<mkdir dir="${temp.dir}/${book}" />
<copy todir="${temp.dir}/${book}">
<fileset dir="${virgo.docs.dir}/${book}-guide/src" erroronmissingdir="true">
<include name="**/*.xml" />
</fileset>
<filterset>
<filtersfile file="${basedir}/plugin.properties" />
<filtersfile file="${virgo.docs.dir}/${book}-guide/filters.properties" />
</filterset>
</copy>
<echo>Copying images from: ${virgo.docs.dir}/${book}-guide to "${basedir}/${book}/images</echo>
<copy todir="${basedir}/${book}/images">
<fileset dir="${virgo.docs.dir}/${book}-guide/images" erroronmissingdir="true">
<include name="*.png" />
<include name="**/*.png" />
</fileset>
</copy>
</target>
<target name="merge-book">
<echo>Merging documentation into: ${temp.dir}/${book}/_combined.xml</echo>
<xinclude in="${temp.dir}/${book}/virgo-${book}-guide.xml" out="${temp.dir}/${book}/_combined.xml" />
</target>
<target name="build-book" depends="init, get-docbook-xsl, get-fop, get-extra-styles, clean-book, copy-book, merge-book">
<echo>Building documentation into: ${basedir}/${book}</echo>
<copy todir="${basedir}/${book}" file="${current-loc}/styles/book.css" />
<xslt force="true" in="${temp.dir}/${book}/_combined.xml" out="${basedir}/${book}/test.xml" style="${docbook.dir}/eclipse/eclipsehelp.xsl">
<factory name="${xalan}" />
<param name="manifest" expression="1" />
<param name="base.dir" expression="" />
<param name="create.plugin.xml" expression="0" />
<param name="chunker.output.indent" expression="yes" />
<param name="navig.showtitles" expression="0" />
<param name="suppress.navigation" expression="0" />
<param name="generate.toc" expression="book toc,title,figure
chapter toc,title
section title" />
</xslt>
<replace file="${basedir}/${book}/toc.xml" token="href=&quot;" value="href=&quot;${book}/" />
<replace file="${basedir}/${book}/toc.xml" token="topic=&quot;" value="topic=&quot;${book}/" />
</target>
<fileset id="virgo.wiki.files" dir="${wiki.docs.dir}" erroronmissingdir="true">
<include name="images/*.gif" />
<include name="*toc.xml" />
<include name="Virgo/**/**" />
</fileset>
<fileset id="virgo.target.files" dir="${basedir}/wiki" erroronmissingdir="true">
<include name="*toc.xml" />
<include name="Virgo/**/**" />
</fileset>
<target name="build-greenpages" depends="clean-temp">
<copy todir="${virgo.docs.dir}/greenpages-guide">
<fileset dir="${greenpages.docs.dir}" erroronmissingdir="true">
<include name="**" />
<include name="images/**/**" />
</fileset>
</copy>
<move file="${virgo.docs.dir}/greenpages-guide/src/greenpages-guide.xml" tofile="${virgo.docs.dir}/greenpages-guide/src/virgo-greenpages-guide.xml" />
<antcall target="build-book">
<param name="book" value="greenpages" />
</antcall>
<replace token="A Guide to the GreenPages Sample" value="Virgo Greenpages Guide">
<fileset refid="virgo.target.files" />
</replace>
<delete dir="${virgo.docs.dir}/greenpages-guide" />
</target>
<target name="build-bundlor" depends="clean-temp">
<echo>${bundlor.docs.dir}/bundlor-guide</echo>
<copy todir="${virgo.docs.dir}/bundlor-guide">
<fileset dir="${bundlor.docs.dir}" erroronmissingdir="true">
<include name="**" />
<include name="images/**/**" />
</fileset>
</copy>
<move file="${virgo.docs.dir}/bundlor-guide/src/user-guide.xml" tofile="${virgo.docs.dir}/bundlor-guide/src/virgo-bundlor-guide.xml" failonerror="false"/>
<antcall target="build-book">
<param name="book" value="bundlor" />
</antcall>
<delete dir="${virgo.docs.dir}/bundlor-guide" />
</target>
<target name="build-tooling-docs" depends="clean-temp">
<antcall target="build-book">
<param name="book" value="tooling" />
</antcall>
</target>
<target name="build-runtime-docs" depends="clean-temp">
<antcall target="build-book">
<param name="book" value="user" />
</antcall>
<antcall target="build-book">
<param name="book" value="programmer" />
</antcall>
</target>
<target name="build-wiki" depends="clean-temp">
<delete dir="wiki/Virgo" />
<copy todir="wiki">
<fileset refid="virgo.wiki.files" />
</copy>
</target>
<target name="build-all-books" depends="build-wiki">
</target>
</project>