<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2006, 2013 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
 -->

<!-- build script to create a plugin from ${plugin} -->
<project name="${plugin}" default="export plug-in" basedir="..">
<target name="export plug-in">
	<antcall target="zz_internal_export">
		<param name="jdt_core_version" value="1.0.0"/>
	</antcall>
</target>

<target name="zz_internal_export">

	<tstamp/>
	<property name="export-dir" value="../../plugin-export" />
	<property name="plugin" value="org.eclipse.jdt.compiler.tool" />
	<property name="plugin-dir" value="${export-dir}/${plugin}_${jdt_core_version}"/>

	<echo message="TARGET: ${export-dir}" />
	<mkdir dir="${export-dir}" />
	<delete dir="${plugin-dir}" />
	<mkdir dir="${plugin-dir}" />

	<echo message="UPDATE ${plugin}_${jdt_core_version}.jar" />
	<copy todir="${plugin-dir}/META-INF">
		<fileset dir="META-INF" />
	</copy>  
	<replaceregexp file="${plugin-dir}/META-INF/MANIFEST.MF" match="Bundle-Version: ((\d)+\.(\d)+\.(\d)+\.)qualifier" replace="Bundle-Version: \1${qualifier}" byline="true" />
	<zip zipfile="${plugin-dir}/${plugin}_${jdt_core_version}.jar">
		<fileset dir=".">
		  <include name="plugin.properties" />
          <include name="about.html"/>
        </fileset>
		<fileset dir="${plugin-dir}">
			<include name="META-INF/**" />
		</fileset>
        <fileset dir="bin"/>
	</zip>
	<delete dir="${plugin-dir}/META-INF" />	
</target>
</project>
