<?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="lucene-solr" default="test" basedir=".">
  <target name="test" description="Test both Lucene and Solr" depends="validate">
    <sequential>
      <subant target="test" inheritall="false" failonerror="true">
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="modules" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
      </subant>
    </sequential>
  </target>
  <target name="validate" description="Validate dependencies, licenses, etc.">
    <sequential><subant target="validate" inheritall="false" failonerror="true">
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="modules" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
      </subant></sequential>
  </target>
  <target name="compile" description="Compile Lucene and Solr">
    <sequential>

      <subant target="compile" inheritall="false" failonerror="true">
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="modules" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
      </subant>
    </sequential>
  </target>

  <property name="version" value="4.0-SNAPSHOT"/>
  <target name="get-maven-poms" 
          description="Copy Maven POMs from dev-tools/maven/ to their target locations">
    <copy todir="." overwrite="true">
      <fileset dir="${basedir}/dev-tools/maven"/>
      <filterset begintoken="@" endtoken="@">
        <filter token="version" value="${version}"/>
      </filterset>
      <globmapper from="*.template" to="*"/>
    </copy>
  </target>

  <target name="generate-maven-artifacts" description="Generate Maven Artifacts for Lucene and Solr">
    <property name="maven.dist.dir"  location="dist/maven" />
    <mkdir dir="${maven.dist.dir}" />

    <sequential>
      <subant target="generate-maven-artifacts" inheritall="false" failonerror="true">
        <property name="maven.dist.dir"  location="${maven.dist.dir}" />
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="modules" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
      </subant>
    </sequential>
  </target>

  <target name="eclipse" description="Setup Eclipse configuration">
    <copy file="dev-tools/eclipse/dot.project" tofile=".project" overwrite="false"/>
    <copy file="dev-tools/eclipse/dot.classpath" tofile=".classpath" overwrite="true"/>
    <mkdir dir=".settings"/>
    <copy file="dev-tools/eclipse/resources.prefs" 
          tofile=".settings/org.eclipse.core.resources.prefs" overwrite="true"/>
    <echo>
      SUCCESS: You must right-click your project and choose Refresh
      Please note, your project must use a Java 6 JRE
    </echo>
  </target>

  <target name="idea" description="Setup IntelliJ IDEA configuration">
    <copy todir=".">
      <fileset dir="dev-tools/idea"/>
    </copy>
    <echo>
      To complete IntelliJ IDEA setup, you must manually configure
      Project Structure | Project | Project SDK.
    </echo>
  </target>
  <target name="clean-idea"
          description="Removes all IntelliJ IDEA configuration files">
    <delete dir=".idea" failonerror="true"/>
    <delete failonerror="true">
      <fileset dir="." includes="*.iml,*.ipr,*.iws"/>
      <fileset dir="solr" includes="**/*.iml"/>
      <fileset dir="lucene" includes="**/*.iml"/>
      <fileset dir="modules" includes="**/*.iml"/>
    </delete>
  </target>

  <target name="clean" description="Clean Lucene and Solr">
    <delete dir="dist" />
    <sequential>
      <subant target="clean" inheritall="false" failonerror="true">
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="modules" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
      </subant>
    </sequential>
  </target>

</project>
