lucene/sandbox/projects/appex/tools/antipede/build.xtarget

300 lines
10 KiB
Plaintext

<!-- =================================================================== -->
<!-- Prepares the source code -->
<!-- =================================================================== -->
<target name="-prepare-src">
<mkdir dir="${xlayout.build.java.dir}"/>
<mkdir dir="${xlayout.build.classes.dir}"/>
<copy todir="${xlayout.build.java.dir}" filtering="off">
<fileset dir="${xlayout.source.java.dir}"/>
</copy>
<mkdir dir="${xlayout.build.scratchpad.java.dir}"/>
<mkdir dir="${xlayout.build.scratchpad.classes.dir}"/>
<copy todir="${xlayout.build.scratchpad.java.dir}" filtering="off">
<fileset dir="${xlayout.source.scratchpad.java.dir}"/>
</copy>
<mkdir dir="${xlayout.build.examples.java.dir}"/>
<mkdir dir="${xlayout.build.examples.classes.dir}"/>
<copy todir="${xlayout.build.examples.java.dir}" filtering="off">
<fileset dir="${xlayout.source.examples.java.dir}"/>
</copy>
<mkdir dir="${xlayout.build.contributions.java.dir}"/>
<mkdir dir="${xlayout.build.contributions.classes.dir}"/>
<copy todir="${xlayout.build.contributions.java.dir}" filtering="off">
<fileset dir="${xlayout.source.contributions.java.dir}"/>
</copy>
</target>
<target name="-init" unless="${antipede.init.already.called}">
<tstamp>
<format property="YEAR" pattern="yyyy" locale="en"/>
</tstamp>
<buildnumber/>
<property name="antipede.init.already.called" value="true"/>
<echo>
--------------------------------------------------------------
Using ${ant.version}
Build file ${ant.file}
Build number ${build.number}
Project Name ${ant.project.name}
Java Version ${ant.java.version}
Timestamp ${DSTAMP}${TSTAMP}
--------------------------------------------------------------
</echo>
<!--
The location of tools.jar, relative to the JAVA_HOME home.
If tools.jar is not present, exit with an error, since it
means that a JDK is not installed.
-->
<property name="tools.jar" value="${java.home}/../lib/tools.jar"/>
<available file="${tools.jar}" property="tools.jar.present"/>
<fail unless="tools.jar.present" message="tools.jar not found. Probably you are using the JRE and the JDK is not installed. Please download the JDK from the Java Sun website www.javasoft.com ."/>
<!-- fixed centipede dirs -->
<property name="tools.dir" value="tools"/>
<property name="temp.dir" value="tools/tmp"/>
<mkdir dir="${temp.dir}"/>
<property name="cents.dir" value="tools/cents"/>
<mkdir dir="${cents.dir}"/>
<property name="antipede.dir" value="tools/antipede"/>
<property name="antipede.lib.dir" value="tools/antipede/lib"/>
<property name="cent.lib.dir.name" value="lib"/>
<property name="task.properties.name" value="tasks.properties"/>
<property name="cent.jar.suffix" value="cent.jar"/>
<property name="cent.dir.suffix" value="cent"/>
<!-- define all ant tasks in antipede -->
<taskdef file="${antipede.dir}/${task.properties.name}">
<classpath>
<path>
<fileset dir="${antipede.lib.dir}" casesensitive="yes">
<include name="*.jar"/>
<include name="*.zip"/>
</fileset>
</path>
</classpath>
</taskdef>
<!--
Load project information
-->
<xmlproperty file="module.xml" prefix="xgump" keeproot="true" collapseAttributes="true" />
<xmlproperty file="status.xml" prefix="xstatus" keeproot="false" collapseAttributes="true" />
<xmlproperty file="layout.xml" prefix="xlayout" keeproot="false" collapseAttributes="true" />
<xmlproperty file="properties.xml" keeproot="false" collapseAttributes="true" />
<antcall target="get-needed-cents"/>
<delete file="${temp.dir}/${task.properties.name}"/>
<!-- put all ant task definitions in cents in a single file -->
<antipede-trycatch><try>
<concat destfile="${temp.dir}/${task.properties.name}" append="no">
<fileset dir=".">
<patternset>
<include name="${cents.dir}/*.${cent.dir.suffix}/${task.properties.name}"/>
</patternset>
</fileset>
</concat>
<!-- define the tasks found in cents -->
<taskdef file="${temp.dir}/${task.properties.name}">
<classpath>
<fileset dir="./tools">
<include name="**/*.jar"/>
</fileset>
</classpath>
</taskdef>
</try>
<catch><echo message="Unable to load tasks... could be already loaded." /></catch>
</antipede-trycatch>
<antcall target="-prepare-src"/>
</target>
<!-- ================================ -->
<!-- Used only by the -init target -->
<!-- =================================-->
<target name="get-needed-cents">
<style basedir="."
destdir="${temp.dir}"
includes="properties.xml"
extension=".build.xml"
style="${antipede.dir}/resources/stylesheets/getcent.xsl"/>
<ant antfile="${temp.dir}/properties.build.xml"
inheritall="true"
dir="."
target="getcents" />
<style basedir="."
destdir="${temp.dir}"
includes="module.xml"
extension=".build.xml"
style="${antipede.dir}/resources/stylesheets/getcorelibs.xsl"/>
<!--
<ant antfile="${temp.dir}/module.build.xml"
inheritall="true"
dir="."
target="getcorelibs" />
-->
<!-- Unpack jarred cents -->
<antipede-foreach target="-cent-unjar" param="current.cent.jar">
<fileset dir="." casesensitive="yes">
<patternset>
<include name="${cents.dir}/*.${cent.jar.suffix}"/>
</patternset>
</fileset>
</antipede-foreach>
<delete dir="${cents.dir}/META-INF"/>
</target>
<!-- ================================ -->
<!-- Used only by the -init target -->
<!-- =================================-->
<target name="-cent-unjar" depends="-cent-unjar-expand,-cent-unjar-keep"/>
<!-- ================================ -->
<!-- Used only by the -init target -->
<!-- =================================-->
<target name="-cent-unjar-check">
<basename property="current.cent.jar.name" file="${current.cent.jar}" suffix=".jar"/>
<condition property="cent-unjar.not.required">
<and>
<uptodate targetfile="${cents.dir}/${current.cent.jar.name}.${cent.dir.suffix}/${task.properties.name}"
srcfile="${current.cent.jar}"/>
<available type="file" file="${cents.dir}/${current.cent.jar.name}.${cent.dir.suffix}/${task.properties.name}"/>
</and>
</condition>
</target>
<!-- ====================================== -->
<!-- Used only by the -cent-unjar target -->
<!-- ====================================== -->
<target name="-cent-unjar-expand" unless="cent-unjar.not.required"
depends="-cent-unjar-check">
<echo message="Expanding ${current.cent.jar}..." />
<unjar src="${current.cent.jar}" dest="${cents.dir}"/>
<touch>
<fileset dir="${cents.dir}/${current.cent.jar.name}.${cent.dir.suffix}"/>
</touch>
<echo message="... ${current.cent.jar} expanded in ${current.cent.jar.name}." />
</target>
<!-- ====================================== -->
<!-- Used only by the -cent-unjar target -->
<!-- =======================================-->
<target name="-cent-unjar-keep" if="cent-unjar.not.required"
depends="-cent-unjar-check">
<echo message="${current.cent.jar} is uptodate with respect to ${current.cent.jar.name}." />
<echo message="No need to expand it." />
</target>
<!-- ============================================= -->
<!-- Simple utility target to call a cent target -->
<!-- ==============================================-->
<target name="call-cent">
<ant antfile="tools/cents/${cent-name}.cent/xbuild.xml"
inheritall="true"
dir="."
target="${cent-target}" />
</target>
<!-- ============================================= -->
<!-- Simple utility target to call a cent target -->
<!-- ==============================================-->
<target name="cent-target" depends="-init">
<ant antfile="tools/cents/${cent-name}.cent/xbuild.xml"
inheritall="true"
dir="."
target="${cent-target}" />
</target>
<!-- ================================== -->
<!-- Create a cent.jar package -->
<!-- using an already deployed cent -->
<!-- ================================== -->
<target name="jar-cent" depends="-init">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="jar-cent"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Create a cent.jar package -->
<!-- using an already deployed cent -->
<!-- ================================== -->
<target name="update-cent">
<centipede-user-input name="cent-name">Please select a cent to update: </centipede-user-input>
<delete file="${cents.dir}/${cent-name}.${cent.jar.suffix}"/>
<delete dir="${cents.dir}/${cent-name}.${cent.dir.suffix}"/>
<antcall target="get-needed-cents"/>
</target>
<!-- ================================== -->
<!-- Create a cent.jar package -->
<!-- using an already deployed cent -->
<!-- ================================== -->
<target name="update-all-cents">
<property name="yn" value="n"/>
<centipede-user-input name="yn">This will delete and download all cents. Are you sure? [y/n]: </centipede-user-input>
<condition property="stopit">
<not>
<equals arg1="${yn}" arg2="y"/>
</not>
</condition>
<fail if="stopit"/>
<delete dir="${cents.dir}"/>
<mkdir dir="${cents.dir}"/>
<antcall target="get-needed-cents"/>
</target>
<!-- ================================== -->
<!-- Create a cent.jar package -->
<!-- using an already deployed cent -->
<!-- ================================== -->
<target name="create-dtd" depends="-init">
<antstructure output="${xlayout.build.dir}/build.dtd"/>
</target>