• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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