blob: eaf4fbbc91b9549e6a60af69954154de259934a0 [file] [log] [blame]
<project name="Pdebuild bootstrap" default="cleanBuild" basedir=".">
<property file="pdebuild.properties" />
<property name="sdkSource" value="build/eclipse-${label}-src" />
<target name="cleanBuild" depends="clean,removeGeneratedBuildXMLs" />
<macrodef name="generateBuildScripts">
<attribute name="buildDirs" />
<attribute name="rootDir" />
<sequential>
<pathconvert pathsep=", " property="plugins">
<filelist refid="@{buildDirs}" />
<mapper>
<chainedmapper>
<flattenmapper />
<globmapper from="*" to="plugin@*" />
</chainedmapper>
</mapper>
</pathconvert>
<eclipse.buildScript elements="${plugins}"
builddirectory="@{rootDir}" />
</sequential>
</macrodef>
<!-- Order in this filelist is critical for building !!! -->
<property name="depsDirsProperty"
value="org.eclipse.osgi
org.eclipse.equinox.common
org.eclipse.core.jobs
org.eclipse.equinox.registry
org.eclipse.equinox.preferences
org.eclipse.core.runtime.compatibility.auth
org.eclipse.core.contenttype
org.eclipse.equinox.app
org.eclipse.core.runtime
org.eclipse.core.variables
org.eclipse.ant.core
org.eclipse.equinox.p2.core
org.eclipse.equinox.p2.metadata
org.eclipse.equinox.frameworkadmin
org.eclipse.equinox.frameworkadmin.equinox
org.eclipse.equinox.p2.jarprocessor
org.eclipse.equinox.security
org.eclipse.core.net
org.eclipse.equinox.concurrent
org.eclipse.ecf.ssl
org.eclipse.ecf.identity
org.eclipse.ecf
org.eclipse.ecf.filetransfer
org.eclipse.ecf.provider.filetransfer
org.eclipse.ecf.provider.filetransfer.ssl
org.eclipse.ecf.provider.filetransfer.httpclient
org.eclipse.ecf.provider.filetransfer.httpclient.ssl
org.eclipse.equinox.p2.repository
org.eclipse.equinox.p2.artifact.repository
org.eclipse.equinox.p2.metadata.repository
org.eclipse.equinox.simpleconfigurator
org.eclipse.equinox.simpleconfigurator.manipulator
org.eclipse.equinox.p2.publisher
org.eclipse.update.configurator
org.eclipse.core.runtime.compatibility
org.eclipse.equinox.p2.engine
org.eclipse.equinox.p2.director
org.eclipse.equinox.p2.publisher.eclipse
org.eclipse.equinox.p2.repository.tools
org.eclipse.equinox.p2.updatesite
org.eclipse.pde.build
org.eclipse.equinox.launcher
org.eclipse.osgi.services
org.eclipse.equinox.p2.console
org.eclipse.equinox.p2.director.app
org.eclipse.update.core
org.eclipse.equinox.p2.garbagecollector
org.eclipse.core.expressions
org.eclipse.equinox.http.servlet
org.eclipse.equinox.p2.touchpoint.eclipse
org.eclipse.equinox.p2.touchpoint.natives" />
<!--
<file name="org.eclipse.help" />
<file name="org.eclipse.help.base" />
-->
<filelist id="depsDirs" dir="${sdkSource}/plugins" files="${depsDirsProperty}"/>
<property name="helpDirsProperty"
value="org.eclipse.equinox.http.jetty_2.0.0
org.eclipse.help
org.eclipse.help.base" />
<filelist id="helpDirs" dir="${sdkSource}/plugins" files="${helpDirsProperty}"/>
<property name="depsDirs2Property"
value="org.eclipse.swt.gtk.linux.${buildArch}
org.eclipse.core.filesystem
org.eclipse.core.resources
org.eclipse.core.commands
org.eclipse.jface
org.eclipse.text
org.eclipse.jface.text
org.eclipse.team.core
org.eclipse.core.filebuffers
org.eclipse.debug.core
org.eclipse.jdt.core
org.eclipse.jdt.debug
org.eclipse.jdt.launching
org.eclipse.pde.core
org.eclipse.pde.api.tools
org.eclipse.equinox.event
org.eclipse.equinox.util
org.eclipse.equinox.ds"/>
<filelist id="depsDirs2" dir="${sdkSource}/plugins" files="${depsDirs2Property}"/>
<fileset dir="${sdkSource}/plugins" id="orbitDeps">
<include name="org.junit_*/" />
<include name="com.ibm.icu_*" />
<include name="org.apache.ant_*/**" />
<include name="org.mortbay.jetty*" />
<include name="org.apache.lucene*" />
<include name="org.apache.commons*" />
<include name="org.sat4j*" />
<include name="org.hamcrest.core*" />
<include name="javax.servlet*" />
<include name="org.objectweb.asm*" />
</fileset>
<path id="pdebuildClasspath">
<pathelement location="${sdkSource}/plugins/org.eclipse.pde.build/lib/pdebuild-ant.jar" />
<pathelement location="${sdkSource}/plugins/org.eclipse.pde.build/pdebuild.jar" />
<pathelement path="${sdkSource}/plugins/org.eclipse.equinox.common/@dot" />
<pathelement path="${sdkSource}/plugins/org.eclipse.core.runtime/@dot" />
<pathelement location="${sdkSource}/plugins/org.eclipse.osgi/osgi/osgi.core.jar" />
<pathelement path="${sdkSource}/plugins/org.eclipse.osgi/@dot" />
<pathelement path="${sdkSource}/plugins/org.eclipse.equinox.launcher/@dot" />
<pathelement path="${sdkSource}/plugins/org.eclipse.equinox.simpleconfigurator.manipulator/@dot" />
<pathelement path="${sdkSource}/plugins/org.eclipse.equinox.p2.updatesite/@dot" />
</path>
<fileset id="depsZips" dir="${sdkSource}/plugins" includes="**/*_*.zip" />
<target name="generateScripts">
<generateBuildScripts builddirs="depsDirs" rootdir="${sdkSource}" />
<eclipse.buildScript elements="plugin@org.eclipse.equinox.http.jetty"
significantVersionDigits="2.0.0"
builddirectory="${sdkSource}" />
<eclipse.buildScript elements="plugin@org.eclipse.help.base"
builddirectory="${sdkSource}" />
<eclipse.buildScript elements="plugin@org.eclipse.help"
builddirectory="${sdkSource}" />
<mkdir dir="generatedScripts" />
<pathconvert pathsep=" " property="generatedBuildXmls">
<filelist refid="depsDirs" />
<filelist refid="helpDirs" />
<mapper>
<chainedmapper>
<flattenmapper />
<globmapper from="*" to="*/build.xml" />
</chainedmapper>
</mapper>
</pathconvert>
<copy todir="generatedScripts/plugins">
<fileset dir="${sdkSource}/plugins/"
includes="${generatedBuildXmls}" />
</copy>
<replace dir="generatedScripts" token="../../../../../../../../../usr/lib/eclipse/plugins/" />
<replace dir="generatedScripts" token="../../../../../../../../../usr/lib64/eclipse/plugins/" />
<replace dir="generatedScripts" token="../../../../../../../../../usr/share/eclipse/plugins/" />
<replace dir="generatedScripts" token="../../../../../../../../../.." />
<tar destfile="eclipse-build-generatedScripts.tar.bz2"
compression="bzip2"
basedir="generatedScripts"
includes="**/*" />
</target>
<target name="generateScripts2">
<generateBuildScripts builddirs="depsDirs2" rootdir="../${sdkSource}" />
</target>
<!-- Java 7 changed the jsr14 javac target so bootstrap to 1.5 -->
<target name="jsr14To15ForBootstrap">
<!-- Set up a fileset for depsDirs build.xml files -->
<pathconvert pathsep="/**/*," refid="depsDirs" property="depsDirsFiles">
<filtermapper>
<replacestring from="${sdkSource}/plugins" to="" />
</filtermapper>
</pathconvert>
<fileset dir="${sdkSource}/plugins" id="depsDirsBuildXMLs" includes="${depsDirsFiles}/**/*">
<include name="**/build.xml" />
</fileset>
<!-- Set up a fileset for helpDirs build.xml files -->
<pathconvert pathsep="/**/*," refid="helpDirs" property="helpDirsFiles">
<filtermapper>
<replacestring from="${sdkSource}/plugins" to="" />
</filtermapper>
</pathconvert>
<fileset dir="${sdkSource}/plugins" id="helpDirsBuildXMLs" includes="${helpDirsFiles}/**/*">
<include name="**/build.xml" />
</fileset>
<!-- Set up a fileset for depsDirs2 build.xml files -->
<pathconvert pathsep="/**/*," refid="depsDirs2" property="depsDirs2Files">
<filtermapper>
<replacestring from="${sdkSource}/plugins" to="" />
</filtermapper>
</pathconvert>
<fileset dir="${sdkSource}/plugins" id="depsDirs2BuildXMLs" includes="${depsDirs2Files}/**/*">
<include name="**/build.xml" />
</fileset>
<replace token="name=&quot;bundleJavacTarget&quot; value=&quot;jsr14&quot;"
value="name=&quot;bundleJavacTarget&quot; value=&quot;1.5&quot;"
summary="true">
<fileset refid="depsDirsBuildXMLs"/>
<fileset refid="helpDirsBuildXMLs"/>
<fileset refid="depsDirs2BuildXMLs"/>
</replace>
</target>
<target name="bootstrap" depends="jsr14To15ForBootstrap">
<echo message="bootclasspath=${CDC-1.1/Foundation-1.1}" />
<subant>
<property name="buildId" value="${buildId}" />
<property name="buildArch" value="${buildArch}" />
<property file="pdebuild.properties" />
<filelist refid="depsDirs" />
</subant>
<subant>
<property name="buildId" value="${buildId}" />
<property name="buildArch" value="${buildArch}" />
<property file="pdebuild.properties" />
<filelist refid="helpDirs" />
</subant>
</target>
<target name="bootstrap-clean">
<subant target="clean">
<filelist refid="depsDirs" />
</subant>
<subant target="clean">
<filelist refid="helpDirs" />
</subant>
</target>
<target name="bootstrap2" depends="zipPlugins">
<antcall target="collectBootstrapPlugins" />
<java classname="org.eclipse.equinox.launcher.Main"
fork="true"
dir="bootstrap"
failonerror="true">
<classpath>
<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
</classpath>
<arg line="-configuration configuration " />
<arg line="-application org.eclipse.ant.core.antRunner " />
<arg line="-buildfile ../pdebuild.xml generateScripts2" />
<arg line="-DbuildArch=${buildArch} " />
<arg line="-DbuildId=${buildId} " />
<arg line="-debug -consolelog" />
</java>
<taskdef name="eclipse.versionReplacer"
classname="org.eclipse.pde.internal.build.tasks.GenericVersionReplacer"
classpathref="pdebuildClasspath" />
<subant>
<filelist refid="depsDirs2" />
</subant>
</target>
<target name="cleanBuilded">
<subant target="clean">
<filelist refid="depsDirs2" />
</subant>
</target>
<target name="zipPlugins" depends="bootstrap">
<taskdef name="eclipse.versionReplacer"
classname="org.eclipse.pde.internal.build.tasks.GenericVersionReplacer"
classpathref="pdebuildClasspath" />
<subant target="zip.plugin">
<filelist refid="depsDirs" />
</subant>
<subant target="zip.plugin">
<filelist refid="helpDirs" />
</subant>
</target>
<target name="zipPlugins2" depends="bootstrap2">
<taskdef name="eclipse.versionReplacer"
classname="org.eclipse.pde.internal.build.tasks.GenericVersionReplacer"
classpathref="pdebuildClasspath" />
<subant target="zip.plugin">
<filelist refid="depsDirs2" />
</subant>
<antcall target="collectBootstrapPlugins" />
</target>
<target name="removeGeneratedBuildXMLs" depends="zipPlugins2">
<fileset id="buildXMLsToKeep" dir="${sdkSource}/plugins"
excludes="**/org.eclipse.swt.gtk.*/*,
**/org.eclipse.update.core.linux/**/*,
**/org.eclipse.pde.build/scripts/*,
**/org.eclipse.jdt.core/scripts/*,
**/org.eclipse.update.core.linux/src/*,
**/org.eclipse.jdt.doc.isv/*,
**/org.eclipse.swt/*,
**/org.eclipse.jdt.doc.user/*"
/>
<delete>
<intersect>
<fileset refid="depsDirsBuildXMLs"/>
<fileset refid="helpDirsBuildXMLs"/>
<fileset refid="depsDirs2BuildXMLs"/>
<fileset refid="buildXMLsToKeep" />
</intersect>
</delete>
</target>
<target name="collectBootstrapPlugins">
<mkdir dir="bootstrap/plugins" />
<copy todir="bootstrap/plugins" flatten="true">
<fileset refid="depsZips" />
</copy>
<copy todir="bootstrap/plugins/org.eclipse.swt">
<fileset dir="${sdkSource}/plugins/org.eclipse.swt" />
</copy>
<unzip dest="bootstrap/plugins">
<fileset dir="bootstrap/plugins">
<include name="**/*.zip" />
</fileset>
</unzip>
<delete>
<fileset dir="bootstrap/plugins">
<include name="**/*.zip" />
</fileset>
</delete>
<copy todir="bootstrap/plugins" flatten="false">
<fileset refid="orbitDeps" />
</copy>
<!-- symlink o.e.osgi to o.e.osgi_<VERSION> -->
<dirset dir="bootstrap/plugins"
includes="org.eclipse.osgi_*"
id="osgitest" />
<property name="osgiplugin" refid="osgitest" />
<echo message="${osgiplugin}" />
<symlink link="bootstrap/plugins/org.eclipse.osgi"
resource="${osgiplugin}"
overwrite="true" />
<!-- symlink o.e.equinox.launcher to o.e.equinox.launcher_<VERSION> -->
<dirset dir="bootstrap/plugins"
includes="org.eclipse.equinox.launcher_*"
id="launcher" />
<property name="launcherplugin" refid="launcher" />
<echo message="${launcherplugin}" />
<symlink link="bootstrap/plugins/org.eclipse.equinox.launcher"
resource="${launcherplugin}"
overwrite="true" />
<!-- symlink o.e.update.configurator to o.e.update.configurator_<VERSION> -->
<dirset dir="bootstrap/plugins"
includes="org.eclipse.update.configurator_*"
id="updatetest" />
<property name="updateconfiguratorplugin" refid="updatetest" />
<echo message="${updateconfiguratorplugin}" />
<symlink link="bootstrap/plugins/org.eclipse.update.configurator"
resource="${updateconfiguratorplugin}"
overwrite="true" />
<!-- symlink o.e.e.common to o.e.e.common_<VERSION> -->
<dirset dir="bootstrap/plugins"
includes="org.eclipse.equinox.common_*"
id="equinoxcommontest" />
<property name="equinoxcommonplugin" refid="equinoxcommontest" />
<echo message="${equinoxcommonplugin}" />
<symlink link="bootstrap/plugins/org.eclipse.equinox.common"
resource="${equinoxcommonplugin}"
overwrite="true" />
<!-- symlink o.e.p.build to o.e.p.build_<VERSION> -->
<dirset dir="bootstrap/plugins"
includes="org.eclipse.pde.build_*"
id="pdebuildtest" />
<property name="pdebuildplugin" refid="pdebuildtest" />
<echo message="${pdebuildplugin}" />
<symlink link="bootstrap/plugins/org.eclipse.pde.build"
resource="${pdebuildplugin}"
overwrite="true" />
<!-- jar up base equinox bundles -->
<jar destfile="bootstrap/plugins/org.eclipse.equinox.launcher.jar"
basedir="bootstrap/plugins/org.eclipse.equinox.launcher"
includes="**"
manifest="bootstrap/plugins/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF">
</jar>
<jar destfile="bootstrap/plugins/org.eclipse.equinox.common.jar"
basedir="bootstrap/plugins/org.eclipse.equinox.common"
includes="**"
manifest="bootstrap/plugins/org.eclipse.equinox.common/META-INF/MANIFEST.MF">
</jar>
<jar destfile="bootstrap/plugins/org.eclipse.osgi.jar"
basedir="bootstrap/plugins/org.eclipse.osgi"
includes="**"
manifest="bootstrap/plugins/org.eclipse.osgi/META-INF/MANIFEST.MF">
</jar>
<jar destfile="bootstrap/plugins/org.eclipse.update.configurator.jar"
basedir="bootstrap/plugins/org.eclipse.update.configurator"
includes="**"
manifest="bootstrap/plugins/org.eclipse.update.configurator/META-INF/MANIFEST.MF">
</jar>
<!-- directory of o.e.osgi seems to get picked up before jar; remove it -->
<symlink action="delete" link="bootstrap/plugins/org.eclipse.osgi" />
<symlink action="delete"
link="bootstrap/plugins/org.eclipse.equinox.common" />
<symlink action="delete"
link="bootstrap/plugins/org.eclipse.update.configurator" />
<symlink action="delete"
link="bootstrap/plugins/org.eclipse.equinox.launcher" />
<!--<delete file="bootstrap/plugins/${equinoxcommonplugin}"/>-->
<delete dir="bootstrap/plugins/${equinoxcommonplugin}" />
<delete dir="bootstrap/plugins/${launcherplugin}" />
<delete dir="bootstrap/plugins/${updateconfiguratorplugin}" />
<delete dir="bootstrap/plugins/${osgiplugin}" />
<!-- also remove symlink -->
<delete verbose="true" followsymlinks="true">
<fileset dir="bootstrap/plugins">
<include name="org.eclipse.osgi" />
</fileset>
</delete>
<!-- osgi can only be found if _ is in name -->
<symlink action="delete"
link="bootstrap/plugins/org.eclipse.osgi_${label}.jar"
failonerror="false" />
<symlink link="bootstrap/plugins/org.eclipse.osgi_${label}.jar"
resource="org.eclipse.osgi.jar"
overwrite="true" />
</target>
<target name="clean">
<delete dir="bootstrap/plugins" />
<delete dir="bootstrap/configuration/org.eclipse.core.runtime" />
<delete dir="bootstrap/configuration/org.eclipse.equinox.app" />
<delete dir="bootstrap/configuration/org.eclipse.osgi" />
<delete dir="bootstrap/configuration/org.eclipse.update" />
<delete dir="bootstrap/workspace" />
<delete dir="bootstrap/p2" />
</target>
</project>