blob: 3e3a1c86fd4130dc0ebb3e2337ab8a87ea2abb45 [file] [log] [blame]
<project name="Build specific targets and properties" default="noDefault">
<!-- ===================================================================== -->
<!-- Create the timestamp tp be used for the build -->
<!-- This timestamp will not be used if forceContextQualifier is set from -->
<!-- a properties file or from the command line -->
<!-- ===================================================================== -->
<tstamp>
<format property="tstampQual" pattern="yyyyMMdd-HH00" locale="en,US" timezone="America/Vancouver"/>
</tstamp>
<echo message="tstampQual=${tstampQual}"/>
<property name="forceContextQualifier" value="${qualPrefix}-${tstampQual}"/>
<echo message="=============================================="/>
<echo message="forceContextQualifier=${forceContextQualifier}"/>
<echo message="=============================================="/>
<!-- ===================================================================== -->
<!-- Run a given ${target} on all elements being built -->
<!-- Add on <ant> task for each top level element being built. -->
<!-- ===================================================================== -->
<property name="allElementsFile" value="${builder}/allElements.xml"/>
<import file="allElements.xml" />
<target name="allElements">
<antcall target="allElementsDelegator" />
</target>
<!-- ===================================================================== -->
<!-- ===================================================================== -->
<target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
<get src="${eclipseBaseURL}" dest="${buildDirectory}/../temp-base.zip" />
<unzip dest="${base}" overwrite="true" src="${buildDirectory}/../temp-base.zip" />
</target>
<target name="checkLocalBase">
<available file="${base}" property="skipBase" />
</target>
<!-- ===================================================================== -->
<!-- Check out map files from correct repository -->
<!-- Replace values for mapsCheckoutTag as desired. -->
<!-- ===================================================================== -->
<target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">
<property name="mapsCheckoutTag" value="HEAD" />
<cvs cvsRoot="${mapsRepo}" package="${mapsRoot}" dest="${buildDirectory}/maps" tag="${mapsCheckoutTag}" />
</target>
<target name="checkLocalMaps">
<available property="skipMaps" file="${buildDirectory}/maps" />
</target>
<target name="tagMapFiles" if="tagMaps">
<cvs dest="${buildDirectory}/maps/${mapsRoot}" command="tag ${mapsTagTag}" />
</target>
<!-- ===================================================================== -->
<target name="clean" unless="noclean">
<antcall target="allElements">
<param name="target" value="cleanElement" />
</antcall>
</target>
<target name="gatherLogs">
<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
<antcall target="allElements">
<param name="target" value="gatherLogs" />
</antcall>
<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
<fileset dir="${buildDirectory}/features">
<include name="**/*.log.zip" />
</fileset>
</unzip>
</target>
<!-- ===================================================================== -->
<!-- Steps to do before setup -->
<!-- ===================================================================== -->
<target name="preSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after setup but before starting the build proper -->
<!-- ===================================================================== -->
<target name="postSetup">
<antcall target="getBaseComponents" />
<mkdir dir="${buildDirectory}/features"/>
<mkdir dir="${buildDirectory}/plugins"/>
<!-- features -->
<copy todir="${buildDirectory}/features/org.eclipse.ajdt">
<fileset dir="${builder}/../org.eclipse.ajdt-feature"/>
</copy>
<copy todir="${buildDirectory}/features/org.eclipse.aspectj.feature_tests">
<fileset dir="${builder}/../org.eclipse.aspectj.feature_tests"/>
</copy>
<copy todir="${buildDirectory}/features/org.eclipse.contribution.xref">
<fileset dir="${builder}/../org.eclipse.contribution.xref-feature"/>
</copy>
<copy todir="${buildDirectory}/features/org.eclipse.contribution.weaving">
<fileset dir="${builder}/../org.eclipse.contribution.weaving-feature"/>
</copy>
<copy todir="${buildDirectory}/features/org.eclipse.ajdt.pde.build">
<fileset dir="${builder}/../org.eclipse.ajdt.pde.build-feature"/>
</copy>
<!-- plugins -->
<copy todir="${buildDirectory}/plugins/org.eclipse.aspectj">
<fileset dir="${builder}/../org.eclipse.aspectj"/>
</copy>
<replace file="${buildDirectory}/plugins/org.eclipse.aspectj/about.mappings"
token="@AJVERSION@" value="${ajde.version}"/>
<!--
<replace file="${buildDirectory}/plugins/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/text/UIMessages.properties"
token="@AJDEVERSION@" value="${ajde.version}"/>
-->
<copy todir="${buildDirectory}/plugins/org.aspectj.runtime">
<fileset dir="${builder}/../org.aspectj.runtime"/>
</copy>
<replace file="${buildDirectory}/plugins/org.aspectj.runtime/META-INF/MANIFEST.MF"
token="92.2.29" value="${ajde.version}"/>
<copy todir="${buildDirectory}/plugins/org.aspectj.weaver">
<fileset dir="${builder}/../org.aspectj.weaver"/>
</copy>
<replace file="${buildDirectory}/plugins/org.aspectj.weaver/META-INF/MANIFEST.MF"
token="92.2.29" value="${ajde.version}"/>
<copy todir="${buildDirectory}/plugins/org.aspectj.ajde">
<fileset dir="${builder}/../org.aspectj.ajde"/>
</copy>
<replace file="${buildDirectory}/plugins/org.aspectj.ajde/META-INF/MANIFEST.MF"
token="92.2.29" value="${ajde.version}"/>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.core">
<fileset dir="${builder}/../org.eclipse.ajdt.core"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.core.tests">
<fileset dir="${builder}/../org.eclipse.ajdt.core.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.ui">
<fileset dir="${builder}/../org.eclipse.ajdt.ui"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.mylyn.ui">
<fileset dir="${builder}/../org.eclipse.ajdt.mylyn.ui"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.doc.user">
<fileset dir="${builder}/../org.eclipse.ajdt.doc.user"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.ui.tests">
<fileset dir="${builder}/../org.eclipse.ajdt.ui.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.ui.visual.tests">
<fileset dir="${builder}/../org.eclipse.ajdt.ui.visual.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.examples">
<fileset dir="${builder}/../org.eclipse.ajdt.examples"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.visualiser">
<fileset dir="${builder}/../org.eclipse.contribution.visualiser"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.visualiser.tests">
<fileset dir="${builder}/../org.eclipse.contribution.visualiser.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.xref.core">
<fileset dir="${builder}/../org.eclipse.contribution.xref.core"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.xref.core.tests">
<fileset dir="${builder}/../org.eclipse.contribution.xref.core.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.xref.ui">
<fileset dir="${builder}/../org.eclipse.contribution.xref.ui"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.xref.ui.tests">
<fileset dir="${builder}/../org.eclipse.contribution.xref.ui.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.weaving.jdt">
<fileset dir="${builder}/../org.eclipse.contribution.weaving.jdt"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.contribution.weaving.jdt.tests">
<fileset dir="${builder}/../org.eclipse.contribution.weaving.jdt.tests"/>
</copy>
<copy todir="${buildDirectory}/plugins/org.eclipse.ajdt.pde.build">
<fileset dir="${builder}/../org.eclipse.ajdt.pde.build"/>
</copy>
</target>
<!-- ===================================================================== -->
<!-- Steps to do before fetching the build elements -->
<!-- ===================================================================== -->
<target name="preFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after fetching the build elements -->
<!-- ===================================================================== -->
<target name="postFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before generating the build scripts. -->
<!-- ===================================================================== -->
<target name="preGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after generating the build scripts. -->
<!-- ===================================================================== -->
<target name="postGenerate">
<antcall target="clean" />
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="preProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="postProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running assemble. -->
<!-- ===================================================================== -->
<target name="preAssemble">
<!-- Copy Equinox Aspects to its final resting place -->
<!-- Must copy to both repository and the update site directories -->
<property name="UpdateSiteStagingLocation" value="${buildDirectory}/updateSite"/>
<mkdir dir="${UpdateSiteStagingLocation}"/>
<unzip dest="${UpdateSiteStagingLocation}">
<fileset file="${builder}/equinox-aspects.zip"/>
</unzip>
<property file="${buildDirectory}/finalFeaturesVersions.properties"/>
<property file="${UpdateSiteStagingLocation}/equinox.aspects.feature.properties"/>
<!-- replace feature versions to force feature dependencies -->
<property file="${buildDirectory}/finalFeaturesVersions.properties"/>
<replace file="${buildDirectory}/features/org.eclipse.ajdt/feature.xml"
token="0.0.0.AJFVERSION" value="${org.eclipse.ajdt}"/>
<replace file="${buildDirectory}/features/org.eclipse.ajdt/feature.xml"
token="0.0.0.EAVERSION" value="${org.eclipse.equinox.weaving}"/>
<replace file="${buildDirectory}/features/org.eclipse.ajdt/feature.xml"
token="&lt;!--EAINCLUDES" value=""/>
<replace file="${buildDirectory}/features/org.eclipse.ajdt/feature.xml"
token="EAINCLUDES--&gt;" value=""/>
<replace file="${buildDirectory}/features/org.eclipse.contribution.weaving/feature.xml"
token="0.0.0.EAVERSION" value="${org.eclipse.equinox.weaving}"/>
<replace file="${buildDirectory}/features/org.eclipse.contribution.weaving/feature.xml"
token="&lt;!--EAINCLUDES" value=""/>
<replace file="${buildDirectory}/features/org.eclipse.contribution.weaving/feature.xml"
token="EAINCLUDES--&gt;" value=""/>
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running assemble. -->
<!-- ===================================================================== -->
<target name="postAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running package. -->
<!-- ===================================================================== -->
<target name="prePackage">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running package. -->
<!-- ===================================================================== -->
<target name="postPackage">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after the build is done. -->
<!-- ===================================================================== -->
<target name="postBuild">
<antcall target="gatherLogs" />
<property name="UpdateSiteStagingLocation" value="${buildDirectory}/updateSite"/>
<antcall target="generateUpdateSite"/>
</target>
<target name="generateUpdateSite">
<!-- Create the directory structure -->
<mkdir dir="${UpdateSiteStagingLocation}/features"/>
<mkdir dir="${UpdateSiteStagingLocation}/plugins"/>
<!-- Build the jar files -->
<antcall target="allElements">
<param name="genericTargets" value="${builder}/customTargets.xml"/>
<param name="target" value="updateSiteExport"/>
</antcall>
<!-- add site.xml -->
<copy file="${builder}/site.xml" tofile="${UpdateSiteStagingLocation}/site.xml"/>
<property file="${buildDirectory}/finalFeaturesVersions.properties"/>
<property file="${UpdateSiteStagingLocation}/equinox.aspects.feature.properties"/>
<replace file="${UpdateSiteStagingLocation}/site.xml"
token="0.0.0.EAVERSION" value="${org.eclipse.equinox.weaving}"/>
<replace file="${UpdateSiteStagingLocation}/site.xml" token="0.0.0.AJFVERSION"
value="${org.eclipse.ajdt}"/>
<delete file="${UpdateSiteStagingLocation}/equinox.aspects.feature.properties"/>
</target>
<target name="updateSiteExport">
<ant antfile="build.xml" dir="${buildDirectory}/features/${id}/" target="build.update.jar">
<property name="feature.destination" value="${UpdateSiteStagingLocation}/features"/>
<property name="plugin.destination" value="${UpdateSiteStagingLocation}/plugins"/>
</ant>
</target>
<!-- ===================================================================== -->
<!-- Steps to do to test the build results -->
<!-- ===================================================================== -->
<target name="test">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to publish the build results -->
<!-- ===================================================================== -->
<target name="publish">
</target>
<!-- ===================================================================== -->
<!-- Default target -->
<!-- ===================================================================== -->
<target name="noDefault">
<echo message="You must specify a target when invoking this file" />
</target>
</project>