<?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="sigil" default="dist" 
  xmlns:ivy="antlib:org.apache.ivy.ant">
  <import file="bldcommon/common.xml"/>
  <fileset id="my.projects" dir="${basedir}">
    <exclude name="ivy/resolver/test/**/${build_xml}"/>
    <exclude name="ivy/resolver/example/**/${build_xml}"/>
    <exclude name="bldcommon/**/${build_xml}" />
    <include name="**/${build_xml}"/>
  </fileset>

  <target name="init">
    <subant buildpath="bldcommon/prepare" target="resolve" />
  </target>

  <target name="dist" depends="build, site" />

  <target name="clean" depends="clean-list, clean-site" />

  <target name="build" depends="build-list" />

  <target name="report" depends="report-list" />

  <target name="site" depends="common-init">
    <copy file="eclipse/updatesite/site.xml" todir="${site.dir}" />
    <!-- eclipse features -->
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.core.feature" revision="latest.integration" inline="true" pattern="${site.dir}/features/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.obr.feature" revision="latest.integration" inline="true" pattern="${site.dir}/features/[artifact]_${buildVersion}.[ext]" transitive="false"/>

    <!-- eclipse plugins -->
    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.junit" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.obr" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.osgi" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.common.runtime" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.core" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.help" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.obr" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.runtime" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.search" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.ui" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>
    <ivy:retrieve organisation="org.apache" module="felix.sigil.eclipse.utils" revision="latest.integration" inline="true" pattern="${site.dir}/plugins/[artifact]_${buildVersion}.[ext]" transitive="false"/>

    <!-- extras -->
    <ivy:retrieve organisation="biz.aQute" module="bndlib" revision="0.0.312" inline="true" pattern="${site.dir}/extras/[artifact]_[revision].[ext]" transitive="false"/>

    <ivy:retrieve organisation="sigil" module="com.springsource.org.apache.commons.lang" revision="2.4.0" inline="true" pattern="${site.dir}/extras/[artifact]_[revision].[ext]" transitive="false"/>
    
    <!-- ivy -->
    <ivy:retrieve organisation="org.apache" module="felix.sigil.ivy.resolver" revision="latest.integration" inline="true" pattern="${site.dir}/ivy/[artifact].[ext]" transitive="false"/>
  </target>

  <target name="clean-site">
    <delete dir="${site.dir}" />
  </target>
</project>
