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