1 <project name="com.android.eclipse.rcp.build" default="build"> 2 <tstamp> 3 <format property="QUALIFIER" pattern="yyyy-M-d-H-m"/> 4 </tstamp> 5 6 <!-- Root of Android Source Tree --> 7 <property name="ANDROID_SRC" location="../../" /> 8 9 <!-- Host Eclipse used for building the RCP --> 10 <property name="basebuilder" value="${ANDROID_SRC}/external/eclipse-basebuilder/basebuilder-3.6.2/org.eclipse.releng.basebuilder/" /> 11 12 <!-- Source for target prebuilts --> 13 <property name="deltaPackTargetSrcDir" value="${ANDROID_SRC}/prebuilts/eclipse/" /> 14 <property name="targetSrcDir" value="${ANDROID_SRC}/prebuilts/eclipse-build-deps/" /> 15 16 <!-- Location where build happens and resulting binaries are generated --> 17 <property name="outDir" value="${ANDROID_SRC}/out/host/eclipse/adtproduct/" /> 18 19 <!-- Location where the target platform is created --> 20 <property name="targetDir" value="${outDir}/target" /> 21 22 <!-- Location where ADT feature build is performed --> 23 <property name="featureBuildDir" value="${outDir}/fbuild" /> 24 25 <!-- Location where ADT feature build is performed --> 26 <property name="productBuildDir" value="${outDir}/pbuild" /> 27 28 <!-- Location of the sources --> 29 <property name="srcDir" value="${ANDROID_SRC}/sdk/eclipse/" /> 30 31 <!-- Identify configurations to build --> 32 <condition property="buildconfigs" value="linux,gtk,x86_64"> 33 <equals arg1="${buildFor}" arg2="linux" /> 34 </condition> 35 <condition property="buildconfigs" value="macosx,cocoa,x86_64"> 36 <equals arg1="${buildFor}" arg2="darwin" /> 37 </condition> 38 <condition property="buildconfigs" value="win32,win32,x86_64"> 39 <equals arg1="${buildFor}" arg2="windows" /> 40 </condition> 41 42 <!-- if no platforms are provided, then build for all platforms --> 43 <property name="buildconfigs" value="linux,gtk,x86 & linux,gtk,x86_64 & win32,win32,x86 & win32,win32,x86_64 & macosx,cocoa,x86_64" /> 44 45 <!-- locate launcher plugin inside eclipse --> 46 <path id="equinox.launcher.path"> 47 <fileset dir="${basebuilder}/plugins"> 48 <include name="org.eclipse.equinox.launcher_*.jar" /> 49 </fileset> 50 </path> 51 <property name="equinox.launcher" refid="equinox.launcher.path" /> 52 53 <!-- locate pde build plugin inside eclipse --> 54 <path id="pde.build.dir.path"> 55 <dirset dir="${basebuilder}/plugins"> 56 <include name="org.eclipse.pde.build_*" /> 57 </dirset> 58 </path> 59 <property name="pde.build.dir" refid="pde.build.dir.path" /> 60 61 <!-- create the build directory, copy plugins and features into it --> 62 <target name="copy_srcs"> 63 <mkdir dir="${featureBuildDir}" /> 64 <copy todir="${featureBuildDir}" preservelastmodified="true"> 65 <fileset dir="${srcDir}/"> 66 <include name="plugins/**" /> 67 <include name="features/**" /> 68 <exclude name="plugins/*/bin/**" /> 69 </fileset> 70 </copy> 71 <mkdir dir="${productBuildDir}" /> 72 <copy todir="${productBuildDir}" preservelastmodified="true"> 73 <fileset dir="${srcDir}/"> 74 <include name="features/com.android.ide.eclipse.adt.package/**" /> 75 </fileset> 76 </copy> 77 </target> 78 79 <!-- create target platform --> 80 <target name="create-target"> 81 <mkdir dir="${targetDir}" /> 82 <mkdir dir="${targetDir}/deltapack" /> 83 <mkdir dir="${targetDir}/repos" /> 84 85 <unzip src="${deltaPackTargetSrcDir}/deltapack/eclipse-4.2.2-delta-pack.zip" dest="${targetDir}/deltapack" overwrite="false" /> 86 <unzip src="${targetSrcDir}/platform/org.eclipse.platform-4.2.2.zip" dest="${targetDir}/repos/platform" overwrite="false" /> 87 <unzip src="${targetSrcDir}/cdt/cdt-master-8.0.2.zip" dest="${targetDir}/repos/cdt" overwrite="false" /> 88 <unzip src="${targetSrcDir}/emf/emf-xsd-SDK-M201201231045.zip" dest="${targetDir}/repos/emf" overwrite="false" /> 89 <unzip src="${targetSrcDir}/jdt/org.eclipse.jdt.source-4.2.2.zip" dest="${targetDir}/repos/jdt" overwrite="false" /> 90 <unzip src="${targetSrcDir}/wtp/wtp-repo-R-3.3.2-20120210195245.zip" dest="${targetDir}/repos/wtp" overwrite="false" /> 91 <unzip src="${targetSrcDir}/gef/GEF-SDK-3.7.2.zip" dest="${targetDir}/repos/gef" overwrite="false" /> 92 <unzip src="${targetSrcDir}/pde/org.eclipse.pde-3.8.zip" dest="${targetDir}/repos/pde" overwrite="false" /> 93 <unzip src="${targetSrcDir}/egit/org.eclipse.egit.repository-2.2.0.201212191850-r.zip" dest="${targetDir}/repos/egit" overwrite="false" /> 94 </target> 95 96 <!-- Launch pde build to build the adtpackage product --> 97 <target name="feature-build" depends="copy_srcs, create-target"> 98 <java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="true"> 99 <arg value="-application" /> 100 <arg value="org.eclipse.ant.core.antRunner" /> 101 <arg value="-buildfile" /> 102 <arg value="${pde.build.dir}/scripts/build.xml" /> 103 <arg value="-data" /> 104 <arg value="${featureBuildDir}/workspace" /> 105 <arg value="-configuration" /> 106 <arg value="${featureBuildDir}/configuration" /> 107 <arg value="-Dtimestamp=${timestamp}" /> 108 <arg value="-DeclipseLocation=${baseBuilder}" /> 109 <arg value="-DbuildDirectory=${featureBuildDir}" /> 110 <arg value="-Dbuilder=${ANDROID_SRC}/sdk/eclipse/buildConfig" /> 111 <arg value="-DbaseLocation=${targetDir}/deltapack/eclipse" /> 112 <arg value="-DrepoBaseLocation=${targetDir}/repos/" /> 113 <arg value="-DtransformedRepoLocation=${targetDir}/transformedRepos/" /> 114 <arg value="-DupdateSiteSource=${ANDROID_SRC}/sdk/eclipse/sites/external" /> 115 <arg value="-DupdateSiteRoot=${targetDir}/repos/" /> 116 <arg value="-DforceContextQualifier=${QUALIFIER}" /> 117 <classpath> 118 <pathelement location="${equinox.launcher}" /> 119 </classpath> 120 </java> 121 </target> 122 123 <!-- Launch pde build to build the adtpackage product --> 124 <target name="product-build" depends="feature-build"> 125 <java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="true"> 126 <arg value="-application" /> 127 <arg value="org.eclipse.ant.core.antRunner" /> 128 <arg value="-buildfile" /> 129 <arg value="${pde.build.dir}/scripts/productBuild/productBuild.xml" /> 130 <arg value="-data" /> 131 <arg value="${productBuildDir}/workspace" /> 132 <arg value="-configuration" /> 133 <arg value="${productBuildDir}/configuration" /> 134 <arg value="-Dtimestamp=${timestamp}" /> 135 <arg value="-DeclipseLocation=${baseBuilder}" /> 136 <arg value="-DbuildDirectory=${productBuildDir}" /> 137 <arg value="-DbaseLocation=${targetDir}/deltapack/eclipse" /> 138 <arg value="-DrepoBaseLocation=${targetDir}/repos/" /> 139 <arg value="-DtransformedRepoLocation=${targetDir}/transformedRepos/" /> 140 <arg value="-Dconfigs=${buildconfigs}" /> 141 <classpath> 142 <pathelement location="${equinox.launcher}" /> 143 </classpath> 144 </java> 145 </target> 146 147 <target name="clean"> 148 <delete dir="${outDir}" /> 149 <delete dir="${targetDir}" /> 150 </target> 151 152 <!-- Make sure that earlier build results are not present in the repository --> 153 <target name="clean-features"> 154 <delete dir="${featureBuildDir}" /> 155 <delete dir="${productBuildDir}" /> 156 <delete dir="${targetDir}/repos/android-eclipse" /> 157 <delete dir="${targetDir}/transformedRepos" /> 158 </target> 159 160 <target name="build" depends="clean-features, product-build" /> 161 </project> 162