<?xml version="1.0" encoding="UTF-8"?><!--
    Copyright (c) 2006, 2010 IBM Corporation and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
    
    Contributors:
        IBM Corporation - initial API and implementation
 -->

<!-- ===================================================================== -->
<!-- Custom targets called from a project's generated build.xml            -->
<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
<!-- ===================================================================== -->
<project name="Build specific targets and properties" default="noDefault">

	<!-- ===================================================================== -->
	<!-- Default target                                                        -->
	<!-- ===================================================================== -->
	<target name="noDefault">
		<echo message="This file must be called with explicit targets" />
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target build.jars                              -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="pre.build.jars">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target build.jars                               -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="post.build.jars">		<!-- SH for OT: if we are running within a full build, fetch the build labels: --> 		<property file="${basedir}/../../label.properties"/>		<!-- HS -->		<property name="buildLabel" value="global" />
		<property name="build.result.folder" value="${basedir}" />
		<property name="postingDirectory" value="${build.result.folder}/ecj" />
		<property name="dest" value="${postingDirectory}/${buildLabel}" />
		<ant antfile="${basedir}/scripts/export-ecj.xml" target="export"/>
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target build.sources                           -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="pre.build.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target build.sources                            -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="post.build.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the compilation target <name>                      -->
	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
	<!-- Available parameters :                                                -->
	<!--   source.foldern : n = 1 ... N, the source folders                    -->
	<!--   target.folder  : where the results of the compilation go            -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="pre.name">
	</target>

	<target name="pre.@dot">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do during the compilation target <name>, after the compile   -->
	<!-- but before jaring.  Substitute "name" with the name of the compilation-->
	<!-- target, eg @dot                                                       -->
	<!-- Available parameters :                                                -->
	<!--   source.foldern : n = 1 ... N, the source folders                    -->
	<!--   target.folder  : where the results of the compilation go            -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="post.compile.name">
	</target>

	<target name="post.compile.@dot">
		<ant antfile="${basedir}/scripts/export-ecj.xml" target="extract-batch-compiler"/>
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do after the compilation target <name>                       -->
	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
	<!-- Available parameters :                                                -->
	<!--   jar.location - the location of the compilation results              -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="post.name">
	</target>

	<target name="post.@dot">
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.bin.parts                         -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder containing the build results           -->
	<!--   target.folder - destination folder                                  -->
	<!-- ===================================================================== -->
	<target name="pre.gather.bin.parts">
	</target>
		
	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.bin.parts                         -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder containing the build results           -->
	<!--   target.folder - destination folder                                  -->
	<!-- ===================================================================== -->
	<target name="post.gather.bin.parts">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.sources                          -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.gather.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.sources                           -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="post.gather.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.logs                             -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.gather.logs">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.logs                              -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="post.gather.logs">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target clean                                   -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.clean">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target clean                                    -->
	<!-- Available parameters :                                                -->
	<!--   plugin.destination - final destination of the build                 -->
	<!--   build.result.folder - results of the compilation                    -->
	<!--   temp.folder - temporary folder                                      -->
	<!-- ===================================================================== -->
	<target name="post.clean">
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target jdtCompilerAdapter.jar                  -->
	<!-- ===================================================================== -->
	<target name="pre.jdtCompilerAdapter.jar">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target compile.jdtCompilerAdapter.jar           -->
	<!-- ===================================================================== -->	<!-- Steps to do during the compilation target <name>, after the compile   -->	<!-- but before jaring.  Substitute "name" with the name of the compilation-->	<!-- target, eg @dot                                                       -->	<!-- Available parameters :                                                -->	<!--   source.foldern : n = 1 ... N, the source folders                    -->	<!--   target.folder  : where the results of the compilation go            -->	<!--   <name>.classpath : name = name of the compilation target. A         -->	<!--                      reference to the classpath structure.            -->	<!-- ===================================================================== -->	<target name="post.compile.jdtCompilerAdapter.jar">
		<ant antfile="${basedir}/scripts/export-ecj.xml" target="extract-ant-adapter-compiler"/>		<copy todir="${target.folder}">			<fileset dir="${basedir}/scripts/antadapter">				<include name="plugin.properties"/>				<include name="plugin.xml"/>			</fileset>		</copy>	
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target jdtCompilerAdapter.jar                   -->
	<!--   jar.Location : the location of the file jdtCompilerAdapter.jar      -->	<!-- ===================================================================== -->
	<target name="post.jdtCompilerAdapter.jar">
		<property name="unjarDestBin" value="${basedir}/tempbin"/>		<mkdir dir="${unjarDestBin}"/>		<unjar src="${jar.Location}" dest="${unjarDestBin}"/>		<delete file="${jar.Location}" />		<delete file="${unjarDestBin}/META-INF/MANIFEST.MF" failonerror="false"/>		<copy file="${basedir}/scripts/antadapter/META-INF/MANIFEST.MF" todir="${unjarDestBin}/META-INF"/>		<eclipse.versionReplacer path="${unjarDestBin}" version="${bundleVersion}"/>		<zip destfile="${jar.Location}">			<fileset dir="${unjarDestBin}" includes="META-INF/MANIFEST.MF"/>			<fileset dir="${unjarDestBin}">				<include name="**/*"/>				<exclude name="META-INF/MANIFEST.MF"/>			</fileset>		</zip>		<delete dir="${unjarDestBin}" failonerror="false"/>	</target>
</project>