<?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 xmlns:ivy="antlib:org.apache.ivy.ant">

  <target name="_ivy-init" unless="_ivy-init.complete">
    <echo message="${ant.project.name}"/>

    <mkdir dir="${build.dir}/ivy"/>
    <mkdir dir="${build.dir}/ivy/report"/>

    <ivy:configure file="${ivysettings.xml}"/>
    <ivy:makepom ivyfile="${ivy.xml}" pomfile="${pom.file}">
      <mapping conf="default" scope="compile"/>
    </ivy:makepom>
    <property name="_ivy-init.complete" value="true"/>
  </target>

  <!-- ivy-init exists as two targets so it can be overridden in build.xml.
       This should be consolidated when core exists as a subproject. -->
  <target name="ivy-init" depends="_ivy-init"/>

  <target name="_check-ivy-retrieve" unless="ivy-retrieve.complete">
    <available property="ivy-retrieve.complete" file="${build.dir}/ivy/lib/.ivy-retrieve.complete"/>
  </target>

  <target name="ivy-retrieve" depends="_check-ivy-retrieve,ivy-init" unless="ivy-retrieve.complete">
    <echo message="${ant.project.name}"/>
    <ivy:retrieve sync="true"
      pattern="${build.dir}/ivy/lib/[conf]/[organization]-[artifact]-[revision](-[classifier]).[ext]"/>
    <touch file="${build.dir}/ivy/lib/.ivy-retrieve.complete"/>
  </target>

  <target name="_ivy-report" depends="ivy-retrieve" description="Generate dependency report">
    <echo message="${ant.project.name}"/>
    <ivy:report todir="${build.dir}/ivy/report" graph="false"/>
  </target>

</project>
