|
What this is
Other links
The source code
<project name="provisioning build" default="build">
<!--
- Build the agent product. (win32)
- Build the metadata generator. (linux)
- Run the metadata generator on the agent.
- Build the director. (linux)
- Run the director and install a new agent.
- Zip up the agent.
- Build the self-hosting feature. (win32)
- Run the metadata generator on the self-hosting feature.
- Run the metadata generator on the Eclipse SDK.
-->
<target name="build">
<!-- TODO: pass these arguments in -->
<property name="prov.root" value="c:" />
<property name="prov.output.base" value="${prov.root}/equinox.prov.build" />
<property name="prov.install.folder" value="equinox.prov" />
<property name="sdk.archive" value="${prov.root}/downloads/eclipse-SDK-3.4M1-win32.zip" />
<property name="rcp.delta.archive" value="${prov.root}/downloads/eclipse-RCP-3.4M1-delta-pack.zip" />
<property name="rcp.archive" value="${prov.root}/downloads/eclipse-RCP-3.4M1-win32.zip" />
<property name="prov.java" value="d:/java/jdk1.5.0_11/jre/bin/java" />
<property name="prov.install.folder.parent" value="${prov.root}/" />
<property name="prov.install.path" value="${prov.install.folder.parent}${prov.install.folder}" />
<property name="base" value="${prov.output.base}/base" />
<tstamp>
<format property="buildId" pattern="yyyyMMdd-HHmm" />
</tstamp>
<property file="build.properties" />
<property name="prov.generator.dir" value="${prov.output.base}/generator" />
<property name="prov.metadata.repo" value="${prov.output.base}/servers/metadata/" />
<property name="prov.artifact.repo" value="${prov.output.base}/servers/artifacts/" />
<property name="prov.flavor" value="tooling" />
<antcall target="clean" />
<!-- Ensure that we are building against the same version that we
are generating the metadata for -->
<antcall target="extract">
<param name="extract-src" value="${sdk.archive}" />
<param name="extract-dest" value="${base}" />
</antcall>
<antcall target="extract">
<param name="extract-src" value="${rcp.delta.archive}" />
<param name="extract-dest" value="${base}" />
</antcall>
<antcall target="build.features" />
<antcall target="build.agent" />
<!-- Generate the metadata for the agent and create the install first due
to bug 199317... installing will install all fragments and we don't want the
ones from the SDK -->
<antcall target="generate.metadata.agent" />
<antcall target="run.director" />
<antcall target="zip.install" />
<antcall target="generate.metadata.selfhosting" />
<antcall target="generate.metadata.sdk" />
</target>
<target name="clean">
<delete dir="${prov.output.base}" />
<delete dir="${prov.install.path}" />
</target>
<target name="build.features">
<ant antfile="${eclipse.pdebuild.scripts}/build.xml">
<property name="builder" value="${basedir}" />
</ant>
</target>
<target name="build.agent">
<ant antfile="${eclipse.pdebuild.scripts}/productBuild/productBuild.xml">
<property name="builder" value="${basedir}" />
</ant>
</target>
<target name="generate.metadata.agent">
<path id="feature.zip.path">
<fileset dir="${buildDirectory}/${buildType}.${buildId}">
<include name="**/org.eclipse.equinox.prov.generator.feature-*-linux.gtk.x86.zip" />
</fileset>
</path>
<property name="feature.zip.name" refid="feature.zip.path" />
<antcall target="extract">
<param name="extract-src" value="${feature.zip.name}" />
<param name="extract-dest" value="${prov.generator.dir}" />
</antcall>
<delete>
<fileset dir="${prov.generator.dir}" includes="**/org.eclipse.update.configurator_*" />
</delete>
<antcall target="extract">
<param name="extract-src" value="${rcp.archive}" />
<param name="extract-dest" value="${prov.generator.dir}" />
</antcall>
<chmod file="${prov.generator.dir}/eclipse/eclipse" perm="777" />
<copy file="files/config.ini.generator" tofile="${prov.generator.dir}/eclipse/configuration/config.ini" overwrite="true" />
<copy todir="${prov.generator.dir}/eclipse/plugins">
<fileset dir="files">
<include name="**/*.jar" />
</fileset>
</copy>
<path id="agent.zip.path">
<fileset dir="${buildDirectory}/${buildType}.${buildId}">
<include name="**/${buildId}*-win32.win32.x86.zip" />
</fileset>
</path>
<property name="agent.zip.name" refid="agent.zip.path" />
<property name="prov.agent.dir" value="${prov.output.base}/agent" />
<antcall target="extract">
<param name="extract-src" value="${agent.zip.name}" />
<param name="extract-dest" value="${prov.agent.dir}" />
</antcall>
<!-- note: use the full path to the exe here, otherwise it seems to call the exe from the builder -->
<exec executable="${prov.generator.dir}/eclipse/eclipse">
<arg line="-vm ${prov.java}" />
<arg line="-application org.eclipse.equinox.prov.metadata.generator.EclipseGenerator" />
<arg line="-consoleLog" />
<arg line="-prov.os win32" />
<arg line="-metadataRepository file:${prov.metadata.repo}" />
<arg line="-artifactRepository file:${prov.artifact.repo}" />
<arg line="-source ${prov.agent.dir}/eclipse" />
<arg line="-root agent" />
<arg line="-flavor ${prov.flavor}" />
<arg line="-publishArtifacts" />
</exec>
</target>
<target name="generate.metadata.selfhosting">
<path id="selfhosting.feature.zip.path">
<fileset dir="${buildDirectory}/${buildType}.${buildId}">
<include name="**/org.eclipse.equinox.prov.selfhosting.feature-*-win32.win32.x86.zip" />
</fileset>
</path>
<property name="selfhosting.feature.zip.name" refid="selfhosting.feature.zip.path" />
<property name="prov.selfhosting.dir" value="${prov.output.base}/selfhosting" />
<antcall target="extract">
<param name="extract-src" value="${selfhosting.feature.zip.name}" />
<param name="extract-dest" value="${prov.selfhosting.dir}" />
</antcall>
<!-- note: use the full path to the exe here, otherwise it seems to call the exe from the builder -->
<exec executable="${prov.generator.dir}/eclipse/eclipse">
<arg line="-vm ${prov.java}" />
<arg line="-application org.eclipse.equinox.prov.metadata.generator.EclipseGenerator" />
<arg line="-consoleLog" />
<arg line="-nosplash" />
<arg line="-updateSite ${prov.selfhosting.dir}/eclipse" />
<arg line="-root selfhosting" />
<arg line="-flavor ${prov.flavor}" />
<arg line="-publishArtifacts" />
<arg line="-metadataRepository file:${prov.metadata.repo}" />
<arg line="-artifactRepository file:${prov.artifact.repo}" />
<arg line="-noDefaultIUs" />
<arg line="-append" />
</exec>
</target>
<target name="generate.metadata.sdk">
<property name="prov.sdk" value="${prov.output.base}/sdk" />
<antcall target="extract">
<param name="extract-src" value="${sdk.archive}" />
<param name="extract-dest" value="${prov.sdk}" />
</antcall>
<!-- note: use the full path to the exe here, otherwise it seems to call the exe from the builder -->
<exec executable="${prov.generator.dir}/eclipse/eclipse">
<arg line="-vm ${prov.java}" />
<arg line="-application org.eclipse.equinox.prov.metadata.generator.EclipseGenerator" />
<arg line="-consoleLog" />
<arg line="-nosplash" />
<arg line="-metadataRepository file:${prov.metadata.repo}" />
<arg line="-artifactRepository file:${prov.artifact.repo}" />
<arg line="-source ${prov.sdk}/eclipse" />
<arg line="-root sdk" />
<arg line="-flavor ${prov.flavor}" />
<arg line="-publishArtifacts" />
<arg line="-append" />
</exec>
</target>
<target name="run.director">
<path id="director.zip.path">
<fileset dir="${buildDirectory}/${buildType}.${buildId}">
<include name="**/org.eclipse.equinox.prov.director.feature-*-linux.gtk.x86.zip" />
</fileset>
</path>
<property name="director.zip.name" refid="director.zip.path" />
<property name="prov.director.dir" value="${prov.output.base}/director" />
<antcall target="extract">
<param name="extract-src" value="${director.zip.name}" />
<param name="extract-dest" value="${prov.director.dir}" />
</antcall>
<antcall target="extract">
<param name="extract-src" value="${rcp.archive}" />
<param name="extract-dest" value="${prov.director.dir}" />
</antcall>
<chmod file="${prov.director.dir}/eclipse/eclipse" perm="777" />
<copy file="files/config.ini.director" tofile="${prov.director.dir}/eclipse/configuration/config.ini" overwrite="true" />
<copy todir="${prov.director.dir}/eclipse/plugins">
<fileset dir="files">
<include name="**/*.jar" />
</fileset>
</copy>
<!-- note: use the full path to the exe here, otherwise it seems to call the exe from the builder -->
<exec executable="${prov.director.dir}/eclipse/eclipse">
<arg line="-vm ${prov.java}" />
<arg line="-application org.eclipse.equinox.prov.director.app.application" />
<arg line="-nosplash" />
<arg line="-consoleLog" />
<arg line="-flavor ${prov.flavor}" />
<arg line="-installIU agent" />
<arg line="-prov.os win32" />
<arg line="-prov.ws win32" />
<arg line="-prov.arch x86" />
<arg line="-profile EquinoxProvisioningUI" />
<arg line="-metadataRepository file:${prov.metadata.repo}" />
<arg line="-artifactRepository file:${prov.artifact.repo}" />
<arg line="-destination ${prov.install.path}" />
<arg line="-bundlepool ${prov.install.path}" />
<arg line="-roaming" />
<arg line="-vmargs" />
<arg line="-Declipse.prov.data.area=${prov.install.path}/configuration/org.eclipse.equinox.prov.core/agentdata" />
</exec>
<!-- Delete the other copy of ICU until bug 199299 is fixed -->
<delete>
<fileset dir="${prov.install.path}/plugins">
<include name="**/com.ibm.icu_*.jar" />
</fileset>
</delete>
<!-- Modify the ini files to reference c:/equinox.prov until bug 200228 is fixed and we can use relative paths -->
<replace dir="${prov.install.path}" token="file:${prov.install.path}" value="file://c:/equinox.prov">
<include name="eclipse.ini" />
<include name="configuration/org.eclipse.equinox.simpleconfigurator/bundles.txt" />
</replace>
<replace dir="${prov.install.path}" token="file\:${prov.install.path}" value="file\://c\:/equinox.prov">
<include name="configuration/config.ini" />
</replace>
<replace dir="${prov.install.path}" token="${prov.install.path}" value="c:/equinox.prov">
<include name="eclipse.ini" />
<include name="configuration/org.eclipse.equinox.simpleconfigurator/bundles.txt" />
</replace>
<replace dir="${prov.install.path}" token="${prov.install.path}" value="c\:/equinox.prov">
<include name="configuration/config.ini" />
</replace>
</target>
<target name="zip.install">
<zip destfile="${prov.output.base}/equinox-prov-agent-${buildId}-win32.zip" basedir="${prov.install.folder.parent}" includes="${prov.install.folder}/**" />
</target>
<target name="extract">
<!-- set the target based on which OS we are running on since there
is a difference between unzip and untar/gunzip -->
<condition property="extract.target" value="extract-zip">
<contains string="${extract-src}" substring=".zip" />
</condition>
<condition property="extract.target" value="extract-tar.gz">
<contains string="${extract-src}" substring=".tar.gz" />
</condition>
<antcall target="${extract.target}" />
</target>
<target name="extract-zip">
<unzip src="${extract-src}" dest="${extract-dest}" />
</target>
<target name="extract-tar.gz">
<gunzip src="${extract-src}" dest="${prov.output.base}/temp.tar" />
<untar src="${prov.output.base}/temp.tar" dest="${extract-dest}" />
<delete file="${prov.output.base}/temp.tar" />
</target>
</project>
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.