Home | History | Annotate | Download | only in adtproductbuild
      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 &amp; linux,gtk,x86_64 &amp; win32,win32,x86 &amp; win32,win32,x86_64 &amp; 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