<?xml version="1.0" encoding="UTF-8"?>
<!--
 *************************************************************************
 * Copyright (c) 2006 Sybase, Inc. 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:
 *  Sybase, Inc.  - initial API and implementation
 *  
 ***************************************************************************
 -->
<project name="org.eclipse.datatools.connectivity.dbdefinition.genericJDBC" default="build.jars" basedir=".">
	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
	<property name="module.name" value="org.eclipse.datatools.connectivity.dbdefinition.genericJDBC"/>
	<property name="basews" value="${ws}"/>
	<property name="baseos" value="${os}"/>
	<property name="basearch" value="${arch}"/>
	<property name="basenl" value="${nl}"/>
	<property name="eclipse.home" location="."/>
	<property file="build.properties"/>
	<!-- JavaDoc settings -->
	<!-- No JavaDoc necessary for this plugin currently -->
	<property name="add.javadoc" value="false"/>
	<property name="javadocWindowTitle" value="DTP Generic JDBC Definition"/>
	<property name="javadocDocTitle" value="DTP Generic JDBC Definition"/>
	<property name="javadocPackages" value="org.eclipse.datatools.connectivity.dbdefinition.genericJDBC.*"/>
	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2006 IBM Corporation and others. All rights reserved. &lt;/i>"/>
	<!-- Compiler settings. -->
	<property name="javacFailOnError" value="true"/>
	<property name="javacDebugInfo" value="on"/>
	<property name="javacVerbose" value="true"/>
	<property name="javacSource" value="1.3"/>
	<property name="javacTarget" value="1.2"/>
	<property name="compilerArg" value=""/>
	<path id="path_bootclasspath">
		<fileset dir="${java.home}/lib">
			<include name="*.jar"/>
		</fileset>
	</path>
	<property name="bootclasspath" refid="path_bootclasspath"/>
	<target name="init" depends="properties">
		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
			<isset property="buildTempFolder"/>
		</condition>
		<property name="pluginTemp" value="${basedir}"/>
		<condition property="build.result.folder" value="${pluginTemp}/${module.name}">
			<isset property="buildTempFolder"/>
		</condition>
		<property name="build.result.folder" value="${basedir}"/>
		<property name="temp.folder" value="${basedir}/temp.folder"/>
		<property name="plugin.destination" value="${basedir}"/>
	</target>
	<target name="properties" if="eclipse.running">
		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
	</target>
	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.connectivity.dbdefinition.genericJDBC for an update site.">
		<delete dir="${temp.folder}"/>
		<mkdir dir="${temp.folder}"/>
		<antcall target="build.jars"/>
		<antcall target="gather.bin.parts">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
		<delete dir="${temp.folder}"/>
	</target>
	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.connectivity.dbdefinition.genericJDBC."/>
	<target name="build.sources" depends="init"/>
	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
			<fileset dir="${basedir}" includes="plugin.xml,META-INF/,runtime/,plugin.properties,about.html"/>
		</copy>
	</target>
	<target name="build.zips" depends="init"/>
	<target name="gather.sources" depends="init" if="destination.temp.folder"/>
	<target name="gather.logs" depends="init" if="destination.temp.folder"/>
	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.connectivity.dbdefinition.genericJDBC of all the zips, jars and logs created.">
		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
		<delete dir="${temp.folder}"/>
	</target>
	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.connectivity.dbdefinition.genericJDBC" property="resourcePath"/>
		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
	</target>
	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.connectivity.dbdefinition.genericJDBC.">
		<delete dir="${temp.folder}"/>
		<mkdir dir="${temp.folder}"/>
		<antcall target="build.jars"/>
		<antcall target="build.sources"/>
		<antcall target="gather.bin.parts">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<antcall target="gather.sources">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<delete>
			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
		</delete>
		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
		<delete dir="${temp.folder}"/>
	</target>
</project>
