<!--
	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.qvtd.doc" default="build-doc" basedir=".">
	
	<!--
		Global vars
	-->
	<property name="document.name" value="qvtd"/>
	<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/core/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.core.ant*.jar"/>
					<include name="org.eclipse.mylyn.wikitext.textile.core*.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.core.TextileLanguage"
			booktitle="QVT Declarative 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="http://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="qvtd.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}/qvtd.html" />
	</target>

	
	
</project>