<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
 *
 * 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="LuceneHelpWrapper" default="main">

    <property file="../../../ant.properties"/>
    <import file="${SRC_ROOT}/solenv/ant/aoo-ant.xml"/>

    <target name="init-project">

        <property name="jar.classpath" value="${external.lucene-core.jarclasspath} ${external.lucene-analyzers.jarclasspath}"/>
        <property name="jar.manifest" value="${SRC_ROOT}/xmlhelp/java/LuceneHelpWrapper/MANIFEST.MF"/>

        <path id="main.classpath">
            <pathelement location="${OUTDIR}/bin/juh.jar"/>
            <pathelement location="${OUTDIR}/bin/jurt.jar"/>
            <pathelement location="${OUTDIR}/bin/ridl.jar"/>
            <pathelement location="${OUTDIR}/bin/unoil.jar"/>
            <pathelement location="${external.lucene-core.path}"/>
            <pathelement location="${external.lucene-analyzers.path}"/>
            <pathelement location="${OUTDIR}/bin/help"/>
        </path>

    </target>


    <target name="import-helpindexer" extensionOf="pre-compile" depends="prepare">

        <copy todir="${main.build.dir}">
            <fileset dir="${OUTDIR}/bin/help" includes="**/*.class"/>
        </copy>

    </target>

</project>
