<?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="highlighter" default="default">

  <description>
    Hits highlighter
  </description>

  <import file="../contrib-build.xml"/>

  <property name="memory.jar" location="${common.dir}/build/contrib/memory/lucene-memory-${version}.jar"/>
  <available property="memory.jar.present" type="file" file="${memory.jar}"/>

  <path id="classpath">
    <pathelement path="${lucene.jar}"/>
    <pathelement path="${memory.jar}"/>
    <pathelement path="${project.classpath}"/>
  </path>

  <target name="compile-core" depends="build-memory, common.compile-core" />

  <target name="build-memory" unless="memory.jar.present">
    <echo>Highlighter building dependency ${memory.jar}</echo>
    <ant antfile="../memory/build.xml" target="default" inheritall="false" dir="../memory" />
  </target>

</project>
