1<!-- 2 Copyright (c) 2003, 2009 IBM Corporation and others. 3 All rights reserved. This program and the accompanying materials 4 are made available under the terms of the Eclipse Public License v1.0 5 which accompanies this distribution, and is available at 6 http://www.eclipse.org/legal/epl-v10.html 7 8 Contributors: 9 IBM Corporation - initial API and implementation 10 --> 11<project name="Build All Elements" default="main"> 12 13<!-- ===================================================================== --> 14<!-- Global properties. See the build.properties for information on --> 15<!-- the properties which callers can control. --> 16<!-- ===================================================================== --> 17<property name="builder" location="${user.dir}"/> 18<property name="builderDirectory" location="${builder}"/> 19<property name="buildProperties" location="${builder}/build.properties"/> 20<property file="${buildProperties}"/> 21<available property="customTargets" file="${builder}/customTargets.xml" value="${builder}/customTargets.xml"/> 22<property name="customTargets" location="${eclipse.pdebuild.templates}/headless-build/customTargets.xml"/> 23<property name="genericTargets" location="${eclipse.pdebuild.scripts}/genericTargets.xml"/> 24 25<!-- ===================================================================== --> 26<!-- main entry point to setup, fetch, generate, build etc. Use --> 27<!-- the customTargets.xml to modify the build behaviour. --> 28<!-- ===================================================================== --> 29 30<!-- ******* add in the descriptions for each of the top level targets to teh target decl --> 31<target name="main" description="the main build target"> 32 <antcall target="preBuild" /> 33 <antcall target="processRepos"/> 34 <antcall target="fetch" /> 35 <antcall target="generate" /> 36 <antcall target="process" /> 37 <antcall target="assemble" /> 38 <antcall target="package" /> 39 <antcall target="postBuild" /> 40</target> 41 42<!-- ===================================================================== --> 43<!-- Steps to do before starting the build. Typical setup includes --> 44<!-- fetching the map files and building the directory. --> 45<!-- ===================================================================== --> 46<target name="preBuild"> 47 <mkdir dir="${buildDirectory}" /> 48 <ant antfile="${customTargets}" target="preSetup" /> 49 <ant antfile="${customTargets}" target="getMapFiles" /> 50 <concat destfile="${buildDirectory}/directory.txt" fixlastline="yes"> 51 <fileset dir="${buildDirectory}" includes="maps/**/*.map"/> 52 </concat> 53 <ant antfile="${customTargets}" target="postSetup" /> 54</target> 55 56<!-- ===================================================================== --> 57<!-- This will transform the content of the repositories listed such that they --> 58<!-- are in a format against which PDE Build can succesfully build --> 59<!-- ===================================================================== --> 60<target name="processRepos" if="repoBaseLocation"> 61 <subant target="preProcessRepos" failonerror="false" inheritAll="true" > 62 <fileset file="${customTargets}" /> 63 </subant> 64 <ant antfile="${customTargets}" target="allElements"> 65 <property name="target" value="transformRepos" /> 66 </ant> 67 <subant target="postProcessRepos" failonerror="false" inheritAll="true" > 68 <fileset file="${customTargets}" /> 69 </subant> 70</target> 71 72<!-- ===================================================================== --> 73<!-- Fetch the elements identified in the customTargets --> 74<!-- ===================================================================== --> 75<target name="fetch" unless="skipFetch"> 76 <ant antfile="${customTargets}" target="preFetch"/> 77 <!-- Generates and then execute the fetch scripts for each build element--> 78 <ant antfile="${customTargets}" target="allElements"> 79 <property name="target" value="fetchElement" /> 80 </ant> 81 82 <ant antfile="${customTargets}" target="postFetch"/> 83</target> 84 85<!-- ===================================================================== --> 86<!-- Generate the build scripts for each element identified in the customTargets --> 87<!-- ===================================================================== --> 88<target name="generate"> 89 <ant antfile="${customTargets}" target="preGenerate"/> 90 <!-- Generate the build.xml for each build element--> 91 <ant antfile="${customTargets}" target="allElements"> 92 <property name="target" value="generateScript" /> 93 </ant> 94 <ant antfile="${customTargets}" target="postGenerate"/> 95</target> 96 97<!-- ===================================================================== --> 98<!-- Run the build scripts for each element identified in the customTargets --> 99<!-- ===================================================================== --> 100<target name="process"> 101 <!-- Run custom tasks before processing, i.e. creating source build zip files --> 102 <ant antfile="${customTargets}" target="preProcess" /> 103 104 <!-- Process all of the build elements--> 105 <ant antfile="${customTargets}" target="allElements"> 106 <property name="target" value="processElement" /> 107 </ant> 108 109 <!-- Run custom tasks after compiling, i.e. reporting compile errors --> 110 <ant antfile="${customTargets}" target="postProcess" /> 111</target> 112 113<!-- ===================================================================== --> 114<!-- Assemble the build elements into final distributions --> 115<!-- ===================================================================== --> 116<target name="assemble"> 117 <ant antfile="${customTargets}" target="preAssemble"/> 118 <ant antfile="${customTargets}" target="allElements"> 119 <property name="target" value="assembleElement"/> 120 </ant> 121 <ant antfile="${customTargets}" target="postAssemble"/> 122</target> 123 124<!-- ===================================================================== --> 125<!-- Package the build elements into final distributions --> 126<!-- ===================================================================== --> 127<target name="package" if="runPackager"> 128 <ant antfile="${customTargets}" target="prePackage"/> 129 <ant antfile="${customTargets}" target="allElements"> 130 <property name="target" value="packageElement"/> 131 </ant> 132 <ant antfile="${customTargets}" target="postPackage"/> 133</target> 134 135<!-- ===================================================================== --> 136<!-- Do any steps required after the build (e.g., posting, testing, ...) --> 137<!-- ===================================================================== --> 138<target name="postBuild"> 139 <ant antfile="${customTargets}" target="postBuild" /> 140</target> 141 142<!-- ===================================================================== --> 143<!-- Clean the build elements. This target is here as an entry --> 144<!-- point to the customTargets. It is not called directly in the normal --> 145<!-- course of events. --> 146<!-- ===================================================================== --> 147<target name="clean"> 148 <ant antfile="${customTargets}" target="allElements"> 149 <property name="target" value="cleanElement"/> 150 </ant> 151</target> 152 153</project> 154