<?xml version="1.0"?>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<project name="spell.english" default="package" basedir="">
	
	<property name="src.dir" value="src"/>
	<property name="lib.dir" value="libs"/>
	<property name="build.dir" value="output/classes"/>
	<property name="output.dir" value="output"/>
	
	<taskdef resource="aQute/bnd/ant/taskdef.properties"
		      classpath="../tasks/bnd-${bnd.version}.jar"/>
	<taskdef name="ipojo" classpath="../tasks/org.apache.felix.ipojo.ant-${ipojo.manipulator.version}.jar"
		classname="org.apache.felix.ipojo.task.IPojoTask"/>
	
	<target name="clean">
		<delete dir="${build.dir}"/>
		<delete dir="${output.dir}"/>
		<delete dir="${lib.dir}"/>
	</target>
	
	<target name="buildclasspath">
		<copy file="../spell.services/output/spell.services.jar" todir="${lib.dir}"/>
        <copy file="../tasks/org.apache.felix.ipojo.ant-${ipojo.manipulator.version}.jar" todir="${lib.dir}"/>
	</target>

    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>

	<target name="compile" depends="clean, buildclasspath">
		<mkdir dir="${output.dir}"/>
		<mkdir dir="${build.dir}"/>

		<javac   srcdir="${src.dir}"
		         destdir="${build.dir}"
		         debug="on"
				 classpathref="classpath"
		  />

	</target>

	<target name="package" depends="compile">
		<bnd
	   	  classpath="${build.dir}"
	      failok="false" 
	      exceptions="true" 
	      files="${ant.project.name}.bnd"
		  output="${output.dir}"/>
		
		<ipojo
				input="${output.dir}/${ant.project.name}.jar"
                classpathref="classpath"
		/>
	</target>

</project>
