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

  <description>
    Faceted indexing and search capabilities
  </description>

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

  <path id="classpath">
    <path refid="base.classpath"/>
    <pathelement path="${queries.jar}"/>
  </path>

  <target name="compile-core" depends="jar-queries,common.compile-core" />

  <target name="javadocs" depends="javadocs-queries,compile-core,check-javadocs-uptodate"
          unless="javadocs-uptodate-${name}">
    <invoke-module-javadoc>
      <links>
        <link href="../queries"/>
      </links>
    </invoke-module-javadoc>
  </target>

  <target name="run-encoding-benchmark" depends="compile-test">
    <java classname="org.apache.lucene.util.encoding.EncodingSpeed" fork="true" failonerror="true">
      <classpath refid="test.classpath" />
      <classpath path="${build.dir}/classes/test" />
    </java>
  </target>

</project>
