<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2005, 2006 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
 -->

<project name="Build EGF Ant JAR" default="build" basedir="..">

	<target name="build" description="Cleans, builds and refreshes the impacted resources" depends="clean, ant_tasks/egf.ant.tasks.jar"/>

	<target name="init" depends="properties">
		<property name="temp.folder" value="${basedir}/temp.folder"/>
		<property name="build.result.folder" value="${basedir}"/>
		<property name="version.suffix" value="_3.1.0"/>
		<property name="new.version.suffix" value="_3.2.0"/>
	</target>

	<target name="properties" if="eclipse.running">
		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
	</target>

	<target name="ant_tasks/egf.ant.tasks.jar" depends="init" description="Creates the ant_tasks/egf.ant.tasks.jar">
		<property name="destdir" value="${temp.folder}/ant_tasks/egf.ant.tasks.jar"/>
		<delete dir="${destdir}"/>
		<mkdir dir="${destdir}"/>
		<!-- compile the source code -->
		<javac target="1.5" source="1.5" destdir="${destdir}" failonerror="true" verbose="false" debug="on">
			<classpath>
				<dirset dir="${basedir}/..">
	        <include name="org.eclipse.egf.common/bin"/>					
	        <include name="org.eclipse.egf.core/bin"/>					
					<include name="org.eclipse.egf.producer/bin"/>
          <include name="org.eclipse.egf.model/bin"/>					
					<include name="org.eclipse.egf.application/bin"/>
				</dirset>
				<fileset dir="${eclipse.home}">
					<include name="plugins/org.eclipse.core.runtime*.jar"/>
	        <include name="plugins/org.eclipse.core.resources*.jar"/>					
					<include name="plugins/org.eclipse.equinox.common*.jar"/>
					<include name="plugins/org.eclipse.core.variables*.jar"/>
					<include name="plugins/org.eclipse.osgi*.jar"/>
	        <include name="plugins/org.eclipse.ant.core*.jar"/>					
          <include name="plugins/org.eclipse.emf.common*.jar"/>					
          <include name="plugins/org.eclipse.emf.ecore*.jar"/>					
          <include name="plugins/org.eclipse.emf.codegen*.jar"/>					
          <include name="plugins/org.eclipse.emf.edit*.jar"/>							
          <include name="plugins/org.eclipse.emf.transaction*.jar"/>					
				</fileset>
			</classpath>
			<src path="tasks/"/>
		</javac>
		<!-- copy necessary resources -->
		<copy todir="${destdir}">
			<fileset dir="tasks/" excludes="**/*.java"/>
		</copy>
		<mkdir dir="${build.result.folder}/ant_tasks"/>
		<jar destfile="${build.result.folder}/ant_tasks/egf.ant.tasks.jar" basedir="${destdir}"/>
		<delete dir="${temp.folder}"/>
	</target>

	<target name="clean" depends="init">
		<delete file="${build.result.folder}/ant_tasks/egf.ant.tasks.jar"/>
		<delete dir="${temp.folder}"/>
	</target>

</project>