buildframework/helium/tools/startup/bootstrap/bootstrap.ant.xml
changeset 1 be27ed110b50
child 179 d8ac696cc51f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/startup/bootstrap/bootstrap.ant.xml	Wed Oct 28 14:39:48 2009 +0000
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+============================================================================ 
+Name        : bootstrap.ant.xml 
+Part of     : Helium 
+
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+This component and the accompanying materials are made available
+under the terms of the License "Eclipse Public License v1.0"
+which accompanies this distribution, and is available
+at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+Initial Contributors:
+Nokia Corporation - initial contribution.
+
+Contributors:
+
+Description:
+
+============================================================================
+-->
+<project name="startup.bootstrap" default="install-dependencies" xmlns:ivy="antlib:org.apache.ivy.ant">
+    <description>
+    Download libraries to bootstrap helium
+    </description>
+
+    <property name="build.type" value="subcon" />
+    <property name="tools.ivy.config.file" location="${helium.dir}/config/ivy/tools_ivy_settings.xml" />
+
+    <!-- Set proxy using Nokia settings by default -->
+    <target name="proxy" unless="proxy.disabled">
+        <property name="proxy.host" value="172.16.42.137" />
+        <property name="proxy.port" value="8080" />
+        <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" />
+    </target>
+
+    <property name="ivy.filename" value="ivy-2.0.0-beta2.jar" />
+    <property name="ivy.file" value="${helium.dir}/external/antlibs/${ivy.filename}" />
+    <available file="${ivy.file}" property="ivy.file.present" />
+
+    <!-- Download ivy jar -->
+    <target name="get-ivy" unless="ivy.file.present" depends="proxy">
+        <mkdir dir="${helium.dir}/external/antlibs" />
+        <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/ivy/ivy/2.0.0-beta2/${ivy.filename}" dest="${ivy.file}" />
+    </target>
+
+    <!-- Install CruiseControl if not already installed -->
+    <target name="install-cruisecontrol">
+        <if>
+            <not>
+                <available file="${helium.dir}/external/CruiseControl/real_cruisecontrol.bat" />
+            </not>
+            <then>
+                <antcall target="install-dependencies">
+                    <param name="build.type" value="ido_install" />
+                </antcall>
+            </then>
+        </if>
+    </target>
+
+    <!-- Clean CruiseControl installation -->
+    <target name="clean-cruisecontrol">
+        <delete includeemptydirs="true">
+            <fileset dir="${helium.dir}/external/CruiseControl">
+                <exclude name="cruisecontrol.bat" />
+                <exclude name="distribution.policy.S60" />
+            </fileset>
+        </delete>
+    </target>
+
+
+    <!-- Set libs for bootstrap -->
+    <target name="set-libs">
+        <path id="lib.path">
+            <fileset dir="${helium.dir}/external/antlibs" includes="**/*.jar" />
+        </path>
+
+        <!-- External tasks. -->
+        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="lib.path" />
+    </target>
+
+    <!-- Clean the Ivy cache. This is important if Ivy file content is changed. -->
+    <target name="clean-ivy-cache" depends="set-libs">
+        <ivy:configure file="${tools.ivy.config.file}" />
+        <ivy:cleancache />
+    </target>
+
+    <!-- Private: unzip jars -->
+    <target name="unzip-jar">
+        <unzip src="${artifact.file}" dest="${helium.dir}/external/antlibs" />
+    </target>
+    <!-- Private: unzip eggs -->
+    <target name="unzip-egg">
+        <unzip src="${artifact.file}" dest="${helium.dir}/external/python/lib/2.5" />
+    </target>
+    <!-- Private: ungzip eggs -->
+    <target name="gunzip-egg">
+        <gunzip src="${artifact.file}" dest="${artifact.file}.tar" />
+        <untar src="${artifact.file}.tar" dest="${helium.dir}/external/python/lib/2.5" />
+    </target>
+    <!-- Private: unbzip egg -->
+    <target name="bunzip-egg">
+        <bunzip2 src="${artifact.file}" dest="${artifact.file}.tar" />
+        <untar src="${artifact.file}.tar" dest="${helium.dir}/external/python/lib/2.5" />
+    </target>
+
+    <!-- Install libraries main target -->
+    <target name="install-dependencies" depends="proxy,set-libs">
+        <ivy:configure file="${tools.ivy.config.file}" />
+        <ivy:resolve file="${helium.dir}/config/ivy/ivy.xml" conf="${build.type}" haltonfailure="false" />
+
+        <ivy:retrieve pattern="${helium.dir}/external/antlibs/[artifact]-[revision].[ext]" type="jar" />
+        <ivy:retrieve pattern="${helium.dir}/external/python/lib/2.5/[artifact]-[revision].[ext]" type="egg" />
+        <ivy:retrieve pattern="${helium.dir}/external/sources/[artifact]-[revision].[ext]" type="zip" />
+
+        <delete>
+            <fileset dir="${helium.dir}/external/antlibs" includes="ant-optional*.jar" />
+            <fileset dir="${helium.dir}/external/antlibs" includes="ant-1.5.jar" />
+        </delete>
+
+        <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="lib.path" />
+
+        <if>
+            <not>
+                <available file="${helium.dir}/external/python/lib/2.5/easy-install.pth" />
+            </not>
+            <then>
+                <copy file="${helium.dir}/tools/startup/bootstrap/easy-install.pth" todir="${helium.dir}/external/python/lib/2.5" />
+                <copy file="${helium.dir}/tools/startup/bootstrap/site.py" todir="${helium.dir}/external/python/lib/2.5" />
+            </then>
+        </if>
+    </target>
+
+</project>