<?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>

  <property name="forbidden-sysout-excludes" value="
    org/apache/lucene/facet/taxonomy/PrintTaxonomyStats.class
  "/>

  <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">
    <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>
