<project default="p2.build" basedir="."> <!-- TODO: Verify These Properties References An Actual Directory. --> <property name="eclipse.dir" value="/opt/uframe-eclipse" /> <property name="build.version" value="1.0.0" /> <property name="build.os" value="linux" /> <property name="build.ws" value="gtk" /> <property name="build.arch" value="x86" /> <property name="workspace.dir" value="${basedir}/../" /> <property name="pde.build.script" value="org.eclipse.pde.build_3.6.1.R36x_v20100823/scripts/build.xml" /> <property name="eclipse.launcher.jar" value="org.eclipse.equinox.launcher_1.1.0.v20100507.jar" /> <!-- Verify That We Have Access To A Copy Of Eclipse --> <target name="verify"> </target> <!-- Creates The Temporary Directories That We Will Need To Build The P2 Repositories. --> <target name="init" depends="verify"> <!-- We Will Use A Temporary p2 Directory And Leave The cave/tmp Directory For The Original PDE Build. --> <mkdir dir="${basedir}/cave/p2" /> <!-- Copy The P2 Build build.properties File. --> <copy tofile="${basedir}/cave/p2/build.properties" file="${basedir}/build.properties.p2" verbose="true" /> <!-- We Will Copy The Plugins Here Eventually. --> <mkdir dir="${basedir}/cave/p2/plugins" /> <!-- We Will Copy The Features Here Eventually. --> <mkdir dir="${basedir}/cave/p2/features" /> <mkdir dir="${basedir}/cave/p2/repository" /> <mkdir dir="${basedir}/cave/p2/dist" /> <!-- BEGIN: Copy The Plugins --> <echo message="PLUGINS: com.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="com.*/**" /> </copy> <echo message="PLUGINS: ucar.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="ucar.*/**" /> </copy> <echo message="PLUGINS: *.feature*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="*.feature*/**" /> </copy> <echo message="PLUGINS: ncsa.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="ncsa.*/**" /> </copy> <echo message="PLUGINS: org.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="org.*/**" /> </copy> <echo message="PLUGINS: net.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="net.*/**" /> </copy> <echo message="PLUGINS: ohd*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="ohd*/**" /> </copy> <echo message="PLUGINS: meteolib.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="meteolib.*/**" /> </copy> <echo message="PLUGINS: javax.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="javax.*/**" /> </copy> <echo message="PLUGINS: gov.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="gov.*/**" /> </copy> <echo message="PLUGINS: edu.*/**" /> <copy todir="${basedir}/cave/p2/plugins"> <fileset dir="${workspace.dir}" includes="edu.*/**" /> </copy> <!-- END: Copy The Plugins --> <!-- Copy The Features --> <echo message="FEATURES: *viz*feature*" /> <copy todir="${basedir}/cave/p2/features"> <fileset dir="${workspace.dir}" includes="*viz*feature*/**" /> </copy> </target> <!-- Cleans Up Any Temporary Directories --> <target name="clean"> <if> <available file="${basedir}/cave/p2" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2" /> </delete> </then> </if> </target> <tstamp> <format property="build.timestamp" pattern="yyyyMMddHHmm" /> </tstamp> <target name="p2.build" depends="clean, init"> <!-- We Need To Build The p2 Repos In A Certain Order Due To Dependencies. --> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.feature.awips" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.cots.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.common.core.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.core.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.core.maps.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.sounding.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.dataplugin.obs.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.dataplugins.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.d2d.core.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.localization.perspective.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.alertviz.localization.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.radar.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.text.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.warngen.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.grib.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.gfe.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.displays.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.satellite.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.d2d.skewt.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.ncep.core.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.ncep.dataplugins.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.ncep.displays.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.ncep.nsharp.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.avnfps.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.hydro.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.d2d.xy.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.d2d.nsharp.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.viz.volumebrowser.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.d2d.gfe.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.dat.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.ncep.perspective.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.nwsauth.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.thinclient.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.npp.feature" /> </antcall> <antcall target="p2.build.repo"> <param name="feature" value="com.raytheon.uf.viz.collaboration.feature" /> </antcall> <antcall target="cleanup.features" /> </target> <target name="p2.build.repo"> <!-- Update The Feature --> <property name="process.feature.tool" value="${workspace.dir}/build/tools/ProcessFeature.jar" /> <java jar="${process.feature.tool}" fork="true" failonerror="false" resultproperty="feature.tool.exitcode"> <arg value="-u" /> <arg value="${basedir}/cave/p2/features/${feature}" /> <arg value="${build.version}" /> </java> <if> <equals arg1="${feature.tool.exitcode}" arg2="255" /> <then> <fail message="${process.feature.tool} FAILED." /> </then> </if> <!-- Build The Repository --> <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true"> <arg value="-application" /> <arg value="org.eclipse.ant.core.antRunner" /> <arg value="-buildfile" /> <arg value="${eclipse.dir}/plugins/${pde.build.script}" /> <arg value="-Dbuilder=${basedir}/cave/p2" /> <arg value="-DbuildDirectory=${basedir}/cave/p2" /> <arg value="-DbaseLocation=${eclipse.dir}" /> <arg value="-DtopLevelElementId=${feature}" /> <arg value="-DforceContextQualifier=${build.timestamp}" /> <arg value="-Dconfigs=${build.os},${build.ws},${build.arch}" /> <classpath> <pathelement location="${eclipse.dir}/plugins/${eclipse.launcher.jar}" /> </classpath> </java> <!-- Package The Repository --> <zip destfile="${basedir}/cave/p2/dist/${feature}-repo-${build.os}.${build.arch}.zip" basedir="${basedir}/cave/p2/repository" /> <!-- Cleanup The Current Build --> <if> <available file="${basedir}/cave/p2/I.CAVE" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/I.CAVE" /> </delete> </then> </if> <if> <available file="${basedir}/cave/p2/repository" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/repository" /> </delete> </then> </if> <mkdir dir="${basedir}/cave/p2/repository" /> </target> <target name="cleanup.features"> <!-- Remove 'com.raytheon.viz.feature.awips' --> <if> <available file="${basedir}/cave/p2/features/com.raytheon.viz.feature.awips" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/features/com.raytheon.viz.feature.awips" /> </delete> </then> </if> <!-- Remove 'com.raytheon.uf.viz.eclipse.feature' --> <if> <available file="${basedir}/cave/p2/features/com.raytheon.uf.viz.eclipse.feature" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/features/com.raytheon.uf.viz.eclipse.feature" /> </delete> </then> </if> <!-- Remove 'com.raytheon.uf.viz.feature.alertviz' --> <if> <available file="${basedir}/cave/p2/features/com.raytheon.uf.viz.feature.alertviz" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/features/com.raytheon.uf.viz.feature.alertviz" /> </delete> </then> </if> <!-- Remove 'com.raytheon.viz.feature.awips.developer' --> <if> <available file="${basedir}/cave/p2/features/com.raytheon.viz.feature.awips.developer" type="dir" /> <then> <delete includeemptydirs="true"> <fileset dir="${basedir}/cave/p2/features/com.raytheon.viz.feature.awips.developer" /> </delete> </then> </if> </target> <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" /> </project>