sintonia/library/propel/generator/pear/build-pear-package.xml

160 lines
5.0 KiB
XML

<?xml version="1.0"?>
<!--
This build file creates a minimal package of propel-generator files,
builds a package.xml for installation using PEAR and creates the necessary TGZ file.
It's pretty easy to build the PEAR package:
$> cd /path/to/propel-generator
$> phing -Dversion=1.0.0RC1 -f pear\build-pear-package.xml
-->
<project name="propel_generator" default="main">
<property name="propelgen.home" value=".."/>
<property name="build.base.dir" value="build"/>
<property name="pkgname" value="${phing.project.name}-${version}"/>
<property name="build.src.dir" value="${build.base.dir}/${pkgname}"/>
<!-- some default properties -->
<property name="notes"><![CDATA[
This is a release of the 1.5 branch of the Propel Generator.
See http://bit.ly/dskpCk for CHANGELOG.
]]></property>
<property name="state" value="stable"/>
<taskdef
name="pear-package"
classname="BuildPropelGenPEARPackageTask" classpath="."/>
<fileset dir="${propelgen.home}/lib" id="lib">
<include name="**"/>
</fileset>
<fileset dir="${propelgen.home}/resources" id="resources">
<include name="**"/>
</fileset>
<fileset dir="${propelgen.home}" id="root">
<include name="build-propel.xml"/>
<include name="default.properties"/>
</fileset>
<fileset dir="${propelgen.home}" id="pear">
<include name="pear/pear-build.xml"/>
<include name="pear/pear-propel*"/>
<include name="pear/build.properties"/>
</fileset>
<!--
==============================================
Main entry point
==============================================
-->
<target name="main" if="version" depends="versioncheck">
<phingcall target="build"/>
<phingcall target="pear-package"/>
<phingcall target="tar"/>
</target>
<!--
===================================================================
Target: checks if language was given, otherwise fail
===================================================================
-->
<target name="versioncheck" unless="version">
<echo message="====================================================="/>
<echo message="Version not specified. You must enter a version. In"/>
<echo message="the future you can add this to build.properties or"/>
<echo message="enter it on the command line: "/>
<echo message=" "/>
<echo message="-Dversion=1.0.0"/>
<echo message="====================================================="/>
<input propertyname="version" promptChar=":">Propel version for package</input>
<property name="pkgname" value="${phing.project.name}-${version}" override="true"/>
<property name="build.src.dir" value="${build.base.dir}/${pkgname}" override="true"/>
</target>
<!--
==============================================
Copy the desired files into the build/ dir
making sure to put them in the directory
structure that will be needed for PEAR install
==============================================
-->
<target name="build">
<echo>-----------------------------</echo>
<echo>| Creating directory layout |</echo>
<echo>-----------------------------</echo>
<delete dir="${build.base.dir}"/>
<mkdir dir="${build.base.dir}"/>
<copy todir="${build.src.dir}">
<fileset refid="root"/>
<fileset refid="pear"/>
</copy>
<copy todir="${build.src.dir}/lib">
<fileset refid="lib"/>
</copy>
<copy todir="${build.src.dir}/resources">
<fileset refid="resources"/>
</copy>
<!-- some files need to be manually moved here to save headache when
doing the pear package.xml creation -->
<move file="${build.src.dir}/pear/build.properties" todir="${build.src.dir}"/>
<move file="${build.src.dir}/pear/pear-build.xml" todir="${build.src.dir}"/>
<move file="${build.src.dir}/pear/pear-propel-gen" todir="${build.src.dir}"/>
<move file="${build.src.dir}/pear/pear-propel-gen.bat" todir="${build.src.dir}"/>
<delete dir="${build.src.dir}/pear/"/>
<chmod file="${build.src.dir}/pear-propel-gen" mode="755"/>
</target>
<!--
==============================================
Create a PEAR package.xml which will guide the
installation.
==============================================
-->
<target name="pear-package">
<echo>-----------------------------</echo>
<echo>| Creating PEAR package.xml |</echo>
<echo>-----------------------------</echo>
<echo></echo>
<pear-package dir="${build.src.dir}" destFile="${build.base.dir}/package.xml" version="${version}" state="${state}" notes="${notes}">
<fileset dir="${build.src.dir}">
<include name="**"/>
</fileset>
</pear-package>
</target>
<!--
==============================================
Create a tar.gz of the files, which will be
installed by pear package manager.
==============================================
-->
<target name="tar">
<echo>-----------------------------</echo>
<echo>| Creating tar.gz package |</echo>
<echo>-----------------------------</echo>
<property name="tarfile" value="${build.base.dir}/${pkgname}.tgz"/>
<delete file="${tarfile}"/>
<tar destFile="${tarfile}" basedir="${build.base.dir}" />
</target>
</project>