blob: 449768c354306e2aee5798605ea7af746cfec9d7 [file] [log] [blame]
<!-- This script is completely boilerplate, and is used to bootstrap before building. To use it, call it like this from within
your build.xml's run target: <project default="run"> <target name="run"> <ant antfile="bootstrap.xml" target="init"> <property
name="basebuilderTag" value="r35x_v20090811" /> <property name="commonrelengTag" value="HEAD" /> <property name="ANTCONTRIB_VERSION"
value="1.0b2" /> <property name="ANT4ECLIPSE_VERSION" value="1.0.0.M3" /> <property name="build.properties" value="build.properties"
/> </ant> ... <condition property="JAVA_HOME" value="${java.home}" else="${java.home}/.."> <available file="${java.home}/bin/javac"
type="file" /> </condition> ... <property name="build.properties" value="build.properties" /> <property file="${build.properties}"
/> <ant antfile="${relengCommonBuilderDir}/build.xml" /> </target> </project> -->
<project default="init">
<condition property="isInHudson" value="true">
<or>
<contains string="${user.dir}" substring="hudson" />
<contains string="${user.name}" substring="hudson" />
<contains string="${user.home}" substring="hudson" />
</or>
</condition>
<target name="local" unless="isInHudson">
<property name="WORKINGDIR" value="${basedir}/.." />
<property name="COMMON_TOOLS" value="${java.io.tmpdir}/build/downloads" />
<property name="writableBuildRoot" value="${WORKSPACE}/build" />
</target>
<!-- if required: use a newer version -->
<target name="get.ant-contrib" unless="ant-contrib.jar.exists">
<property name="ANTCONTRIB_VERSION" value="1.0b2" />
<property name="ANTCONTRIB_MIRROR" value="http://downloads.sourceforge.net/ant-contrib/" />
<get usetimestamp="true" dest="${COMMON_TOOLS}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip" src="${ANTCONTRIB_MIRROR}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip" />
<touch file="${COMMON_TOOLS}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip" />
<mkdir dir="${java.io.tmpdir}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip_" />
<unzip src="${COMMON_TOOLS}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip" dest="${java.io.tmpdir}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip_"
overwrite="true" />
<copy file="${java.io.tmpdir}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip_/ant-contrib/lib/ant-contrib.jar" tofile="${COMMON_TOOLS}/ant-contrib.jar"
failonerror="true" />
<delete dir="${java.io.tmpdir}/ant-contrib-${ANTCONTRIB_VERSION}-bin.zip_" includeemptydirs="true" quiet="true" />
</target>
<!-- if required: use a newer version -->
<target name="get.ant4eclipse" unless="ant4eclipse.jar.exists">
<property name="ANT4ECLIPSE_VERSION" value="1.0.0.M3" />
<property name="ANT4ECLIPSE_MIRROR" value="http://downloads.sourceforge.net/ant4eclipse/" />
<get usetimestamp="true" dest="${COMMON_TOOLS}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip" src="${ANT4ECLIPSE_MIRROR}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip" />
<touch file="${COMMON_TOOLS}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip" />
<mkdir dir="${java.io.tmpdir}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip_" />
<unzip src="${COMMON_TOOLS}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip" dest="${java.io.tmpdir}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip_"
overwrite="true" />
<copy file="${java.io.tmpdir}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip_/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.jar"
tofile="${COMMON_TOOLS}/ant4eclipse.jar" failonerror="true" />
<delete dir="${java.io.tmpdir}/org.ant4eclipse_${ANT4ECLIPSE_VERSION}.zip_" includeemptydirs="true" quiet="true" />
</target>
<target name="get.athena.common.releng.and.releng.basebuilder">
<!-- find relengCommonBuilderDir and relengBaseBuilderDir -->
<for param="dir" list="${COMMON_TOOLS}, ${basedir}/../.., ${basedir}/.." delimiter=", ">
<sequential>
<if>
<available file="@{dir}/org.eclipse.dash.common.releng" type="dir" />
<then>
<property name="relengCommonBuilderDir" value="@{dir}/org.eclipse.dash.common.releng" />
</then>
</if>
<if>
<available file="@{dir}/org.eclipse.releng.basebuilder" type="dir" />
<then>
<property name="relengBaseBuilderDir" value="@{dir}/org.eclipse.releng.basebuilder" />
</then>
</if>
</sequential>
</for>
<if>
<or>
<not>
<isset property="relengCommonBuilderDir" />
</not>
<not>
<isset property="relengBaseBuilderDir" />
</not>
</or>
<then>
<!-- fetch projects using psf file; create it if needed -->
<if>
<not>
<available file="${COMMON_TOOLS}/psfs/athena.psf" type="file" />
</not>
<then>
<!-- if required: use a different tag/branch -->
<property name="basebuilderTag" value="r35x_v20090811" />
<property name="commonrelengTag" value="HEAD" />
<echo>Create ${COMMON_TOOLS}/psfs/athena.psf file</echo>
<mkdir dir="${COMMON_TOOLS}/psfs" />
<echo file="${COMMON_TOOLS}/psfs/athena.psf"><?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
<provider id="org.eclipse.team.cvs.core.cvsnature">
<project
reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/technology,org.eclipse.dash/athena/org.eclipse.dash.commonbuilder/org.eclipse.dash.commonbuilder.releng,org.eclipse.dash.common.releng,${commonrelengTag}" />
<project
reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,org.eclipse.releng.basebuilder,org.eclipse.releng.basebuilder,${basebuilderTag}" />
</provider>
</psf>
</echo>
</then>
</if>
<echo>Fetch projects from athena.psf into ${COMMON_TOOLS}</echo>
<cvsGetProjectSet cvsreallyquiet="true" cvsUser="anonymous" cvsPwd="" command="checkout"
projectSet="${COMMON_TOOLS}/psfs/athena.psf" destination="${COMMON_TOOLS}" />
<property name="relengCommonBuilderDir" value="${COMMON_TOOLS}/org.eclipse.dash.common.releng" />
<property name="relengBaseBuilderDir" value="${COMMON_TOOLS}/org.eclipse.releng.basebuilder" />
</then>
</if>
</target>
<target name="init" depends="local">
<property name="WORKINGDIR" value="${basedir}/.." />
<property name="COMMON_TOOLS" value="${basedir}/../tools" />
<mkdir dir="${COMMON_TOOLS}" />
<available file="${COMMON_TOOLS}/ant-contrib.jar" type="file" property="ant-contrib.jar.exists" />
<antcall target="get.ant-contrib" />
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${COMMON_TOOLS}/ant-contrib.jar" />
</classpath>
</taskdef>
<available file="${COMMON_TOOLS}/ant4eclipse.jar" type="file" property="ant4eclipse.jar.exists" />
<antcall target="get.ant4eclipse" />
<taskdef resource="org/ant4eclipse/antlib.xml">
<classpath>
<pathelement location="${COMMON_TOOLS}/ant4eclipse.jar" />
</classpath>
</taskdef>
<antcallback target="get.athena.common.releng.and.releng.basebuilder" return="relengCommonBuilderDir, relengBaseBuilderDir" />
<if>
<or>
<not>
<isset property="relengCommonBuilderDir" />
</not>
<not>
<isset property="relengBaseBuilderDir" />
</not>
</or>
<then>
<fail>Error!
$${relengBaseBuilderDir} or $${relengCommonBuilderDir} could not be found!
Try checking out manually using psfs/athena.psf
</fail>
</then>
</if>
<!-- <property name="build.properties" value="build.properties" /> <echo file="${build.properties}" append="true"> #bootstrap.xml
properties WORKINGDIR=${WORKINGDIR} COMMON_TOOLS=${COMMON_TOOLS} relengCommonBuilderDir=${relengCommonBuilderDir} relengBaseBuilderDir=${relengBaseBuilderDir}
</echo> <if> <isset property="writableBuildRoot" /> <then> <echo file="${build.properties}" append="true">writableBuildRoot=${writableBuildRoot}
</echo> </then> </if> -->
</target>
</project>