build.xml 4.94 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
<?xml version="1.0"?>
<!--
	Builds API documentation and PEAR compliant packages.
	
	Phing 2.2.0 (http://phing.info) or newer recommended.
	
	@version $Id$
	@author Jukka Hassinen <jukka.hassinen@brainalliance.com> 
-->	
<project name="Doctrine" basedir="." default="main">
	
	<property name="base.name" value="Doctrine"/>
	<property name="project.base.dir" value="../.."/>
	<property name="build.base.dir" value="${project.base.dir}/build"/>	
	<property name="build.dest.dir" value="${build.base.dir}/tobuild"/>
	
	<fileset dir="${project.base.dir}/lib" id="classes">			
		<include name="**/**"/>
		<exclude name="**/.svn**"/>
	</fileset>

	<fileset dir="${project.base.dir}/manual" id="docs">
		<include name="**/**"/>
        <exclude name="**/.svn**"/>
	</fileset>

	<fileset dir="${project.base.dir}/tests" id="test">
		<include name="**/**"/>
		<exclude name="**/.svn**"/>
		<exclude name="**/.svn*/*.txt"/>
		<exclude name=".svn/**"/>
		<exclude name=".svn**"/>
	</fileset>

	<target name="main">
		<phingcall target="build"/>
		<phingcall target="generate-docs"/> 
<!--		<phingcall target="pear-package"/> -->
<!--		<phingcall target="compress"/> -->
	</target>
		
	<target name="build">
		<echo>-----------------------------</echo>
		<echo>| Creating directory layout |</echo>
		<echo>-----------------------------</echo>
		
		<delete dir="${build.base.dir}"/>
		
		<copy todir="${build.dest.dir}/lib">			
			<fileset refid="classes"/>						
		</copy>

		<copy todir="${build.dest.dir}/docs">			
			<fileset refid="docs"/>						
		</copy>

		<copy todir="${build.dest.dir}/test">			
			<fileset refid="test"/>						
		</copy>
		
		
		<svnlastrevision svnpath="svn" workingcopy="${project.base.dir}" propertyname="svn.lastrevision"/>
		<property name="version" value="0.0.${svn.lastrevision}"/>

		<fileset dir="${build.dest.dir}" id="php-files">			
			<include name="**/**.php"/>
			<exclude name="**/.svn**"/>
		</fileset>

		<reflexive>
	  		<fileset refid="php-files" />
			<filterchain>
				<replaceregexp>
			      <regexp pattern="@version \$(.*)\$" replace="@version \$$1\$ Package ver: ${version}"/>
			    </replaceregexp>
			</filterchain>
			<filterchain>
  				<tabtospaces tablength="4" />
			</filterchain>
		</reflexive>
		
	</target>

	<target name="generate-docs">
		<!-- 
			Generates the API documentation using Doxygen and PHPDoc 
			Doxygen is required in the path.
		-->
89
		<mkdir dir="${build.dest.dir}/docs/API/doxygen" />		
90 91
		<exec command="doxygen" dir="."/>
		<!-- <exec command="make pdf" dir="${build.src.dir}/docs/latex"/> -->		
92 93
		
		<mkdir dir="${build.dest.dir}/docs/API/phpdoc" />
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
		<phpdoc title="Doctrine Documentation" destdir="${build.dest.dir}/docs/API/phpdoc/html" 
                        sourcepath="${project.base.dir}/lib" output="HTML:Smarty:PHP"/>
	</target>
	
	<target name="pear-package">
	
		<echo>-----------------------------</echo>
		<echo>| Creating PEAR package.xml |</echo>
		<echo>-----------------------------</echo>
		<echo></echo>
		
		<svnlastrevision svnpath="svn" workingcopy="${project.base.dir}" propertyname="svn.lastrevision"/>
		<property name="version" value="0.0.${svn.lastrevision}"/>
		
		<pearpkg name="${base.name}" dir="${build.dest.dir}" destFile="${build.dest.dir}/package.xml">
			
			<fileset refid="classes"/>			
			<fileset refid="docs"/>			
			<fileset refid="test"/>
		
			<option name="notes">*</option>
			<option name="description">ORM</option>			
			<option name="summary">ORM</option>
			<option name="version" value="${version}"/>
			<option name="state" value="stable"/>
			<option name="license" value="LGPL"/>
			
			<mapping name="maintainers">
				<element>
					<element key="handle" value="jhassine"/>
					<element key="name" value="Jukka Hassinen"/>
					<element key="email" value="Jukka.Hassinen@BrainAlliance.com"/>
					<element key="role" value="lead"/>
				</element>
			</mapping>
			
			<mapping name="deps">
				<element>
					<element key="type" value="php"/>
					<element key="version" value="5.1.0"/>
					<element key="rel" value="ge"/>
				</element>						
			</mapping>
		</pearpkg>
	</target>
	
	<target name="compress">
		<echo>-----------------------------</echo>
		<echo>| Creating tar.gz package   |</echo>
		<echo>-----------------------------</echo>	
		
		<svnlastrevision svnpath="svn" workingcopy="." propertyname="svn.lastrevision"/>
		<property name="version" value="0.0.${svn.lastrevision}"/>
		
		<property name="gztarfile" value="${build.base.dir}/${base.name}-${version}-pear.tar.gz"/>
		<property name="bz2tarfile" value="${build.base.dir}/${base.name}-${version}-pear.tar.bz2"/>
		<property name="zipfile" value="${build.base.dir}/${base.name}-${version}-pear.zip"/>
			
		<delete	file="${gztarfile}"/>
		<delete	file="${bz2tarfile}"/>
		<delete	file="${zipfile}"/>                
		<tar destFile="${gztarfile}" basedir="${build.dest.dir}" compression="gzip"/>
		<tar destFile="${bz2tarfile}" basedir="${build.dest.dir}" compression="bzip2"/>
		<zip destfile="${zipfile}" basedir="${build.dest.dir}"/>
	</target>
	
</project>