blob: 74e17292fb507dcd8ed289aa989bed0f82c89296 [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>
This build file needs to be run using an Eclipse launch configuration
and selecting to use the same JVM that is running Eclipse so that it
will be able to load classes from the Eclipse plug-ins.
-->
<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.1" />
<!--
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>