blob: b94e0c80cdce7b72358b3263d4408f580098a011 [file] [log] [blame]
<!--
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="org.eclipse.ocl.doc" default="build-doc" basedir=".">
<!--
Global vars
-->
<property name="document.name" value="ocl"/>
<property name="document.stylesheet" value="styles/html.xsl"/>
<property name="document.pdf.stylesheet" value="styles/xmpp.xsl"/>
<property name="document.eclipse.stylesheet" value="styles/eclipsehelp.xsl"/>
<property name="eclipsehelp-css.file" value="styles/book.css" />
<property name="html-css.file" value="styles/book.css" />
<property name="build.dir" value="build" />
<property name="download.dir" value="${java.io.tmpdir}${file.separator}downloads"/>
<!--
WikiText Toolchain
<property name="wikitext.url" value="http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/tools/mylyn/update/weekly/mylyn-wikitext-standalone-latest.zip"/>
<property name="wikitext.url" value="http://download.eclipse.org/mylyn/snapshots/nightly/docs/wikitext-standalone-latest.zip"/>
<property name="wikitext.url" value="http://download.eclipse.org/mylyn/drops/3.10.0/v20131025-2037/mylyn-3.10.0.v20131025-2037.zip"/>
-->
<property name="wikitext.dir" value="${download.dir}${file.separator}wikitext"/>
<!-- adolfosbh: We expect to receive a target.location to provide some jars to the xslt ant tasks
in the said target.location is not provided, we try to use the tipical ${eclipse.home} variable -->
<condition property="target.location" value="${eclipse.home}">
<not>
<isset property="target.location"/>
</not>
</condition>
<echo>Target Location: "${target.location}" </echo>
<echo>download.dir "${download.dir}" </echo>
<path id="xslt.classpath">
<pathelement path="${java.class.path}"/>
<pathelement path="${target.location}/plugins/org.apache.xalan_2.7.1.v201005080400.jar"/>
<pathelement path="${target.location}/plugins/org.apache.xml.serializer_2.7.1.v201005080400.jar"/>
<!--pathelement path="${target.location}/plugins/com.google.guava_10.0.1.v201203051515.jar"/-->
</path>
<target name="install-wikitext">
<echo>Find wikitext tasks</echo>
<!--echo>echoproperties to "${user.dir}${file.separator}install-wikitext.properties"</echo>
<echoproperties destfile="${user.dir}${file.separator}install-wikitext.properties"/-->
<taskdef resource="org/eclipse/mylyn/wikitext/ant/tasks.properties">
<classpath>
<fileset dir="${target.location}${file.separator}plugins">
<include name="com.google.guava*.jar"/>
<!--include name="org.eclipse.mylyn.wikitext.core*.jar"/-->
<include name="org.eclipse.mylyn.wikitext.ant*.jar"/>
<include name="org.eclipse.mylyn.wikitext.textile*.jar"/>
<include name="org.eclipse.mylyn.wikitext*.jar"/>
</fileset>
</classpath>
</taskdef>
</target>
<target name="assemble">
<echo>Assembling contributions to "${build.dir}${file.separator}${document.name}.textile"</echo>
<loadfile srcfile="doc/${document.name}-index.txt" property="inputfiles">
<filterchain>
<tokenfilter>
<replacestring from="\n" to=","/>
</tokenfilter>
</filterchain>
</loadfile>
<concat destfile="${build.dir}${file.separator}${document.name}.textile" append="false" fixlastline="yes">
<filelist dir="doc" files="${inputfiles}"/>
</concat>
</target>
<target name="wikitext2docbook" depends="assemble" description="Generate DocBook from Textile">
<wikitext-to-docbook markupLanguage="org.eclipse.mylyn.wikitext.textile.TextileLanguage"
booktitle="OCL Documentation"
validate="true">
<fileset dir="${build.dir}">
<include name="${document.name}.textile"/>
</fileset>
</wikitext-to-docbook>
</target>
<!--
DocBook Toolchain
-->
<!-- <property name="docbook.version" value="1.73.2" /> -->
<property name="docbook.version" value="1.75.1" />
<property name="docbook.dir" value="${download.dir}${file.separator}docbook-xsl-${docbook.version}"/>
<property name="docbookxsl.url" value="https://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.1/docbook-xsl-${docbook.version}.zip"/>
<property name="fop.dir" value="${download.dir}${file.separator}fop-0.95"/>
<property name="fop.url" value="http://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-0.95-bin.zip"/>
<property name="jai.dir" value="ENTER_JAI_DIRECTORY"/>
<macrodef name="docbook2pdf">
<attribute name="source"/>
<attribute name="target"/>
<sequential>
<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
<classpath>
<pathelement location="${fop.dir}${file.separator}build${file.separator}fop.jar" />
<pathelement location="${fop.dir}${file.separator}lib${file.separator}avalon-framework-4.2.0.jar" />
<pathelement location="${fop.dir}${file.separator}lib${file.separator}commons-logging-1.0.4.jar" />
<pathelement location="${fop.dir}${file.separator}lib${file.separator}commons-io-1.3.1.jar" />
<pathelement location="${fop.dir}${file.separator}lib${file.separator}batik-all-1.7.jar" />
<pathelement location="${fop.dir}${file.separator}lib${file.separator}xmlgraphics-commons-1.3.1.jar" />
<pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_core.jar" />
<pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_codec.jar" />
</classpath>
</taskdef>
<fop
format="application/pdf"
fofile="@{source}"
outfile="@{target}"
messagelevel="info"/>
</sequential>
</macrodef>
<target name="init">
<mkdir dir="${download.dir}"/>
<mkdir dir="${build.dir}"/>
</target>
<target name="build-doc" depends="init, install-wikitext, get-docbook-xsl, get-fop">
<echo>Building Output...</echo>
<antcall target="wikitext2docbook"/>
<antcall target="docbook2pdf"/>
<antcall target="docbook2html"/>
<antcall target="docbook2eclipsehelp"/>
</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-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}" usetimestamp="true" retries="5"/>
<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}" usetimestamp="true" retries="5"/>
<unzip src="${download.dir}${file.separator}fop.zip" dest="${download.dir}"/>
</target>
<target name="docbook2html">
<echo>Converting article to HTML...</echo>
<echo>XML Catalog "docbook.xsl" => "${docbook.dir}${file.separator}html${file.separator}docbook.xsl"</echo>
<delete dir="${basedir}/html"
failonerror="false"
excludes="CVS"
includeemptydirs="true"/>
<copy todir="${basedir}/html">
<fileset dir="doc/">
<include name="images/**" />
</fileset>
</copy>
<copy file="${html-css.file}" todir="${basedir}/html" />
<xslt classpathref="xslt.classpath" in="${build.dir}${file.separator}${document.name}.xml" extension="xml" out="${basedir}/html${file.separator}${document.name}.html" style="${document.stylesheet}">
<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
</factory>
<xmlcatalog>
<entity
publicId="docbook.xsl"
location="${docbook.dir}${file.separator}html${file.separator}docbook.xsl"/>
</xmlcatalog>
<param name="header.rule" expression="1" />
<param name="admon.graphics.extension" expression=".gif"/>
<param name="admon.textlabel" expression="0"/>
<param name="ulink.target" expression="_new"/>
<param name="ignore.image.scaling" expression="1"/>
</xslt>
</target>
<target name="docbook2pdf">
<echo>Converting article to "manual${file.separator}${document.name}.pdf"</echo>
<echo>XML Catalog "docbook.xsl" => "${docbook.dir}${file.separator}fo${file.separator}docbook.xsl"</echo>
<delete file="manual${file.separator}${document.name}.pdf" failonerror="false"/>
<delete file="${build.dir}${file.separator}${document.name}.fo"/>
<mkdir dir="manual"/>
<!-- HACK! images should rather be copied to build/images -->
<copy todir="${basedir}">
<fileset dir="doc/">
<include name="images/**" />
</fileset>
</copy>
<xslt classpathref="xslt.classpath" in="${build.dir}${file.separator}${document.name}.xml" extension="xml" out="${build.dir}${file.separator}${document.name}.fo" style="${document.pdf.stylesheet}">
<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
</factory>
<xmlcatalog>
<entity
publicId="docbook.xsl"
location="${docbook.dir}${file.separator}fo${file.separator}docbook.xsl"/>
</xmlcatalog>
<param name="generate.toc" expression="book toc" />
<param name="header.rule" expression="1" />
<param name="admon.graphics.extension" expression=".gif"/>
<param name="admon.textlabel" expression="0"/>
<param name="admon.graphics" expression="1"/>
</xslt>
<docbook2pdf
source="${build.dir}${file.separator}${document.name}.fo"
target="manual${file.separator}${document.name}.pdf"/>
<!-- Remove the resulting formatting object. This object isn't necessary in the
result of this build. -->
<delete file="${build.dir}${file.separator}${document.name}.fo" />
<delete dir="${basedir}/images" />
</target>
<target name="wikitext2eclipsehelp" depends="assemble" description="Generate Eclipse Help from textile">
<wikitext-to-eclipse-help markupLanguage="org.eclipse.mylyn.wikitext.textile.core.TextileLanguage"
multipleOutputFiles="true"
navigationImages="false"
formatoutput="true"
helpPrefix="help">
<fileset dir="${build.dir}">
<include name="${document.name}.textile"/>
</fileset>
<stylesheet url="book.css"/>
<stylesheet file="${basedir}/help/styles/main.css"/>
</wikitext-to-eclipse-help>
</target>
<target name="docbook2eclipsehelp">
<echo>Converting article to Eclipse Help...</echo>
<delete dir="${basedir}/help"
failonerror="false"
excludes="CVS"
includeemptydirs="true"/>
<copy todir="${basedir}/help/images">
<fileset dir="doc/images">
<include name="**/*" />
</fileset>
</copy>
<copy file="${eclipsehelp-css.file}" todir="${basedir}/help" />
<xslt classpathref="xslt.classpath" basedir="${build.dir}" destdir="${basedir}" style="${document.eclipse.stylesheet}">
<param name="chunk.quietly" expression="1"/>
<include name="ocl.xml"/>
<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
</factory>
<xmlcatalog>
<entity
publicId="chunk.xsl"
location="${docbook.dir}${file.separator}html${file.separator}chunk.xsl"/>
</xmlcatalog>
<param name="header.rule" expression="1" />
<param name="ignore.image.scaling" expression="1" />
</xslt>
<delete file="${basedir}/ocl.html" />
</target>
</project>