blob: 8d17365615126d5fe38323e3212d9bc1a8de77b2 [file] [log] [blame]
<project name="Shared build targets">
<!-- the following properties must be set from the calling script
<property name="eclipse.installation.dir" value="${buildDirectory}"/>
<property name="eclipse.local.tar.non.server" value="${test.eclipse.zip}"/>
eclipse.download.cache,pluginbuilder.eclipse.url
optional:
<property name="pluginbuilder.additional.feature.urls" value="featureurl1,featureurl2"/>
-->
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${buildHome}/build-files/ant-contrib.jar" />
<target name="unpack.eclipse">
<condition property="unpack.eclipse">
<not>
<available type="dir" file="${eclipse.installation.dir}"/>
</not>
</condition>
<antcall target="-unpack.eclipse.ifnecessary"/>
</target>
<!-- call either with or feature.url or pluginbuilder.eclipse.url
sets property archive.location to the archive path in download cache.
-->
<target name="-set.archive.location" if="pluginbuilder.is.server">
<!-- set default, useful for server where pluginbuilder.eclipse.url.default can be specified in build_local.properties -->
<property name="pluginbuilder.eclipse.url" value="${pluginbuilder.eclipse.url.default}"/>
<condition property="archive.url" value="${feature.url}" else="${pluginbuilder.eclipse.url}">
<isset property="feature.url"/>
</condition>
<mkdir dir="${eclipse.download.cache}"/>
<tempfile destdir="${eclipse.download.cache}" property="tmp.file" suffix=".txt" prefix="downloadurl"/>
<echo file="${tmp.file}" message="${archive.url}"/>
<checksum file="${tmp.file}" property="pluginbuilder.eclipse.url.checksum"/>
<delete file="${tmp.file}"/>
<property name="archive.location" value="${eclipse.download.cache}/${pluginbuilder.eclipse.url.checksum}"/>
<!-- <echo message="${archive.location} is archive location for ${archive.url}"/> -->
</target>
<target name="-set.eclipse.local.tar.server" if="pluginbuilder.is.server" depends="-set.archive.location">
<property name="eclipse.local.tar" value="${archive.location}"/>
</target>
<target name="-set.eclipse.local.tar.non.server" unless="pluginbuilder.is.server">
<property name="eclipse.local.tar" value="${eclipse.local.tar.non.server}"/>
</target>
<target name="-get.archive.ifnecessary" unless="eclipse.is.downloaded">
<condition property="archive.url" value="${feature.url}" else="${pluginbuilder.eclipse.url}">
<isset property="feature.url"/>
</condition>
<get src="${archive.url}" dest="${archive.location}" />
</target>
<target name="-get.archive" depends="-set.archive.location" if="pluginbuilder.is.server">
<condition property="eclipse.is.downloaded">
<available file="${archive.location}" property="${eclipse.is.downloaded}"/>
</condition>
<antcall target="-get.archive.ifnecessary"/>
</target>
<target name="-get.features" if="pluginbuilder.is.server" >
<property name="pluginbuilder.feature.urls" value="${pluginbuilder.feature.urls.default}"/>
<foreach list="${pluginbuilder.feature.urls}" param="feature.url" delimiter="," target="-get.archive" inheritall="true"/>
</target>
<target name="-unpack.features" if="pluginbuilder.is.server">
<property name="pluginbuilder.feature.urls" value="${pluginbuilder.feature.urls.default}"/>
<foreach list="${pluginbuilder.feature.urls}" param="feature.url" delimiter="," target="-unpack.feature" inheritall="true"/>
</target>
<target name="-unpack.feature" depends="-set.archive.location">
<property name="tempunziplocation" value="${buildDirectory}/tmpunzip"/>
<delete dir="${tempunziplocation}" failonerror="false"/>
<mkdir dir="${tempunziplocation}"/>
<unzip src="${archive.location}" overwrite="true" dest="${tempunziplocation}"/>
<condition property="moveroot" value="${tempunziplocation}/eclipse" else="${tempunziplocation}">
<available file="${tempunziplocation}/eclipse" type="dir"/>
</condition>
<move todir="${eclipse.installation.dir}" includeemptydirs="true">
<fileset dir="${moveroot}" includes="**"/>
</move>
</target>
<target name="-unpack.eclipse.ifnecessary" if="unpack.eclipse">
<antcall target="-get.archive"/>
<condition property="is.windows">
<os family="windows"/>
</condition>
<antcall target="-unpack.eclipse.windows"/>
<antcall target="-unpack.eclipse.linux"/>
<antcall target="-get.features"/>
<antcall target="-unpack.features"/>
</target>
<target name="-unpack.eclipse.windows" if="is.windows" depends="-set.eclipse.local.tar.server,-set.eclipse.local.tar.non.server">
<unzip src="${eclipse.local.tar}" overwrite="true" dest="${eclipse.installation.dir}/.."/>
</target>
<target name="-unpack.eclipse.linux" unless="is.windows" depends="-set.eclipse.local.tar.server,-set.eclipse.local.tar.non.server">
<untar src="${eclipse.local.tar}" overwrite="true" dest="${eclipse.installation.dir}/.." compression="gzip"/>
</target>
<target name="test">
<property name="buildDirectory" value="C:/Temp/tst"/>
<mkdir dir="${buildDirectory}"/>
<property name="eclipse.download.cache" value="C:/Temp/downloadcache"/>
<property name="pluginbuilder.is.server" value="true"/>
<property name="pluginbuilder.eclipse.url" value="http://mirror.yoxos-eclipse-distribution.de/eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-PDE-3.2.2.zip"/>
<property name="eclipse.installation.dir" value="C:/Temp/eclipse_root/eclipse"/>
<delete dir="${eclipse.installation.dir}" failonerror="false"/>
<property name="pluginbuilder.feature.urls" value="http://self.pluginbuilder.org/0.2.0/org.pluginbuilder.feature-0.2.0.20070218PRD.zip,http://mirror.yoxos-eclipse-distribution.de/eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-examples-3.2.2.zip"/>
<antcall target="unpack.eclipse"/>
</target>
</project>