<?xml version="1.0" encoding="UTF-8"?> <!-- PRADO 3.0 build file - Copyright (C) 2006 PradoSoft Requirements ============ Phing >= 2.2.0RC1 xdebug >= 2.0.0beta4 PhpDocumentor >= 1.3.0RC5 PEAR >= 1.4.4 --> <project name="prado" basedir="." default="dist"> <property name="version" value="3.0.0"/> <property name="state" value="beta"/> <property name="pkgname" value="${phing.project.name}-${version}"/> <property name="pkgname.pear" value="${pkgname}-pear"/> <property name="src.dir" value="framework"/> <property name="doc.dir" value="docs"/> <property name="build.base.dir" value="build"/> <property name="build.src.dir" value="${build.base.dir}/standard/${pkgname}"/> <property name="build.pear.dir" value="${build.base.dir}/pear/${pkgname.pear}"/> <property name="doc.build.dir" value="${build.base.dir}/docs/manual"/> <property name="dist.base.dir" value="dist"/> <property name="dist.zipfile" value="${dist.base.dir}/${pkgname}.zip"/> <property name="dist.tarfile" value="${dist.base.dir}/${pkgname}.tar.gz"/> <property name="dist.pearfile" value="${dist.base.dir}/${pkgname.pear}.tgz"/> <property name="tests.dir" value="tests/unit"/> <property name="reports.dir" value="${build.base.dir}/reports"/> <property name="reports.unit.dir" value="${reports.dir}/unit"/> <property name="reports.codecoverage.dir" value="${reports.dir}/codecoverage"/> <property name="reports.style.dir" value="buildscripts/phing/style"/> <property name="reports.geshi.dir" value="${src.dir}/3rdParty/geshi"/> <property name="prado.lite" value="pradolite.php"/> <taskdef name="phplint" classname="PhpLintTask" classpath="buildscripts/phing/tasks"/> <fileset dir="." id="src"> <exclude name="${src.dir}/**/.svn"/> <include name="${src.dir}/**/*.php"/> </fileset> <fileset dir="." id="misc"> <include name="COPYRIGHT"/> <include name="HISTORY"/> <include name="UPGRADE"/> <include name="index.html"/> <exclude name="requirements/.svn"/> <include name="requirements/*"/> </fileset> <fileset dir="." id="docs"> <exclude name="${doc.dir}/**/.svn"/> <include name="${doc.dir}/**/*"/> </fileset> <fileset dir="." id="demos"> <exclude name="demos/**/.svn"/> <include name="demos/**/*"/> </fileset> <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=3.0"/> <echo message="====================================================="/> <input propertyname="version" promptChar=":">PRADO 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"/> <property name="dist.zipfile" value="${build.base.dir}/${pkgname}.zip" override="true"/> <property name="dist.tarfile" value="${build.base.dir}/${pkgname}.tar.gz" override="true"/> <property name="dist.pearfile" value="${build.base.dir}/${pkgname}-pear.tgz" override="true"/> </target> <target name="lint" description="Check syntax of PHP source files"> <phplint> <fileset refid="src"/> </phplint> </target> <target name="prepare" description="Prepare directory layout for build"> <phingcall target="clean"/> <mkdir dir="${build.base.dir}"/> <mkdir dir="${dist.base.dir}"/> <mkdir dir="${reports.unit.dir}"/> <mkdir dir="${reports.codecoverage.dir}"/> <mkdir dir="${doc.build.dir}"/> </target> <target name="doc" description="Generate API documentation"> <delete dir="${doc.build.dir}"/> <phpdoc title="PRADO ${version} API Documentation" destdir="${doc.build.dir}" sourcepath="${src.dir}" output="HTML:Smarty:PHP"/> </target> <target name="test" description="Run unit tests"> <echo>Preparing directory structure</echo> <delete dir="${reports.unit.dir}"/> <delete dir="${reports.codecoverage.dir}"/> <mkdir dir="${reports.unit.dir}"/> <mkdir dir="${reports.codecoverage.dir}"/> <echo>Preparing Code Coverage Database</echo> <coverage-setup database="${reports.codecoverage.dir}/coverage.db"> <fileset dir="${src.dir}"> <include name="**/*.php"/> <exclude name="Web/Javascripts/js/clientscripts.php"/> <exclude name="Data/TCache.php"/> <exclude name="I18N/core/Gettext/MO.php"/> <exclude name="I18N/core/Gettext/PO.php"/> <exclude name="I18N/core/util.php"/> <exclude name="I18N/TGlobalization.php"/> <exclude name="I18N/TGlobalizationAutoDetect.php"/> <exclude name="Security/TUserManager.php"/> <exclude name="Security/TMembershipManager.php"/> <exclude name="core.php"/> <exclude name="3rdParty/**/*.php"/> <exclude name="pradolite.php"/> <exclude name="prado.php"/> </fileset> </coverage-setup> <echo>Running Unit Tests</echo> <phpunit2 codecoverage="true" haltonfailure="true" haltonerror="true" printsummary="true"> <batchtest> <fileset dir="${tests.dir}"> <include name="**/*Test.php"/> </fileset> </batchtest> <formatter type="xml" todir="${reports.dir}" outfile="logfile.xml"/> </phpunit2> <echo>Creating Unit Test Report</echo> <phpunit2report infile="${reports.dir}/logfile.xml" format="frames" styledir="${reports.style.dir}" todir="${reports.unit.dir}"/> <echo>Creating Code Coverage Report</echo> <coverage-report outfile="${reports.dir}/coverage.xml" geshipath="${reports.geshi.dir}" geshilanguagespath="${reports.geshi.dir}/geshi"> <report todir="${reports.codecoverage.dir}" styledir="${reports.style.dir}"/> </coverage-report> </target> <target name="build-standard-package"> <echo>Building standard package...</echo> <copy todir="${build.src.dir}"> <fileset refid="src"/> <fileset refid="docs"/> <fileset refid="misc"/> <fileset refid="demos"/> <fileset dir="${build.base.dir}"> <include name="docs/manual/**/*"/> <include name="${prado.lite}"/> </fileset> </copy> </target> <target name="build" depends="versioncheck,prepare,lint,test,doc,pradolite,build-standard-package" description="Creating the main PRADO build"> </target> <target name="dist" depends="build" description="Create PRADO distributions"> <tar compression="gzip" destFile="${dist.tarfile}" basedir="${build.base.dir}/standard"/> <zip destfile="${dist.zipfile}" basedir="${build.base.dir}/standard"/> </target> <target name="clean"> <echo>Cleaning up the mess</echo> <delete dir="${build.base.dir}"/> <delete dir="${dist.base.dir}"/> </target> <target name="pradolite"> <echo>Compiling PRADO Lite</echo> <delete file="${build.base.dir}/${prado.lite}"/> <append destFile="${build.base.dir}/${prado.lite}"> <filterchain> <stripphpcomments /> <replaceregexp> <regexp pattern="Prado::using\(.*\);" replace=""/> <regexp pattern="(require|require_once)\s*\(.*?;" replace=""/> <regexp pattern="(include|include_once)\s*\(.*?;" replace=""/> <regexp pattern="Prado::trace\(.*\);" replace=""/> </replaceregexp> </filterchain> <filelist dir="${src.dir}" listfile="buildscripts/phpbuilder/files.txt"/> </append> <exec command="php -l ${prado.lite}" dir="${build.base.dir}" passthru="true" checkreturn="true"/> <exec command="php -e ${prado.lite}" dir="${build.base.dir}" passthru="true" checkreturn="true"/> </target> </project>