| 1 | <?xml version="1.0" encoding="UTF-8"?> |
|---|
| 2 | <!-- |
|---|
| 3 | PRADO 3.0 build file - Copyright (C) 2006 PradoSoft |
|---|
| 4 | |
|---|
| 5 | Requirements |
|---|
| 6 | ============ |
|---|
| 7 | Phing >= 2.2.0RC1 |
|---|
| 8 | xdebug >= 2.0.0beta4 |
|---|
| 9 | PhpDocumentor >= 1.3.0RC5 |
|---|
| 10 | PEAR >= 1.4.4 |
|---|
| 11 | --> |
|---|
| 12 | <project name="prado" basedir="." default="dist"> |
|---|
| 13 | |
|---|
| 14 | <property name="version" value="3.0.0"/> |
|---|
| 15 | <property name="state" value="beta"/> |
|---|
| 16 | <property name="pkgname" value="${phing.project.name}-${version}"/> |
|---|
| 17 | <property name="pkgname.pear" value="${pkgname}-pear"/> |
|---|
| 18 | <property name="src.dir" value="framework"/> |
|---|
| 19 | <property name="doc.dir" value="docs"/> |
|---|
| 20 | <property name="build.base.dir" value="build"/> |
|---|
| 21 | <property name="build.src.dir" value="${build.base.dir}/standard/${pkgname}"/> |
|---|
| 22 | <property name="build.pear.dir" value="${build.base.dir}/pear/${pkgname.pear}"/> |
|---|
| 23 | <property name="doc.build.dir" value="${build.base.dir}/docs/manual"/> |
|---|
| 24 | <property name="dist.base.dir" value="dist"/> |
|---|
| 25 | <property name="dist.zipfile" value="${dist.base.dir}/${pkgname}.zip"/> |
|---|
| 26 | <property name="dist.tarfile" value="${dist.base.dir}/${pkgname}.tar.gz"/> |
|---|
| 27 | <property name="dist.pearfile" value="${dist.base.dir}/${pkgname.pear}.tgz"/> |
|---|
| 28 | <property name="tests.dir" value="tests/unit"/> |
|---|
| 29 | <property name="reports.dir" value="${build.base.dir}/reports"/> |
|---|
| 30 | <property name="reports.unit.dir" value="${reports.dir}/unit"/> |
|---|
| 31 | <property name="reports.codecoverage.dir" value="${reports.dir}/codecoverage"/> |
|---|
| 32 | <property name="reports.style.dir" value="buildscripts/phing/style"/> |
|---|
| 33 | <property name="reports.geshi.dir" value="${src.dir}/3rdParty/geshi"/> |
|---|
| 34 | <property name="prado.lite" value="pradolite.php"/> |
|---|
| 35 | <property name="application.xsd" value="${doc.dir}/specs/application.xsd"/> |
|---|
| 36 | <property name="config.xsd" value="${doc.dir}/specs/config.xsd"/> |
|---|
| 37 | |
|---|
| 38 | <taskdef name="phplint" classname="PhpLintTask" classpath="buildscripts/phing/tasks"/> |
|---|
| 39 | <taskdef name="xmllint" classname="XmlLintTask" classpath="buildscripts/phing/tasks"/> |
|---|
| 40 | |
|---|
| 41 | <fileset dir="." id="src"> |
|---|
| 42 | <exclude name="${src.dir}/**/.svn"/> |
|---|
| 43 | <include name="${src.dir}/**/*.php"/> |
|---|
| 44 | </fileset> |
|---|
| 45 | |
|---|
| 46 | <fileset dir="." id="misc"> |
|---|
| 47 | <include name="COPYRIGHT"/> |
|---|
| 48 | <include name="HISTORY"/> |
|---|
| 49 | <include name="UPGRADE"/> |
|---|
| 50 | <include name="index.html"/> |
|---|
| 51 | <exclude name="requirements/.svn"/> |
|---|
| 52 | <include name="requirements/*"/> |
|---|
| 53 | </fileset> |
|---|
| 54 | |
|---|
| 55 | <fileset dir="." id="docs"> |
|---|
| 56 | <exclude name="${doc.dir}/**/.svn"/> |
|---|
| 57 | <include name="${doc.dir}/**/*"/> |
|---|
| 58 | </fileset> |
|---|
| 59 | |
|---|
| 60 | <fileset dir="." id="demos"> |
|---|
| 61 | <exclude name="demos/**/.svn"/> |
|---|
| 62 | <include name="demos/**/*"/> |
|---|
| 63 | </fileset> |
|---|
| 64 | |
|---|
| 65 | <target name="versioncheck" unless="version"> |
|---|
| 66 | <echo message="====================================================="/> |
|---|
| 67 | <echo message="Version not specified. You must enter a version. In"/> |
|---|
| 68 | <echo message="the future you can add this to build.properties or"/> |
|---|
| 69 | <echo message="enter it on the command line: "/> |
|---|
| 70 | <echo message=" "/> |
|---|
| 71 | <echo message="-Dversion=3.0"/> |
|---|
| 72 | <echo message="====================================================="/> |
|---|
| 73 | <input propertyname="version" promptChar=":">PRADO version for package</input> |
|---|
| 74 | |
|---|
| 75 | <property name="pkgname" value="${phing.project.name}-${version}" override="true"/> |
|---|
| 76 | <property name="build.src.dir" value="${build.base.dir}/${pkgname}" override="true"/> |
|---|
| 77 | <property name="dist.zipfile" value="${build.base.dir}/${pkgname}.zip" override="true"/> |
|---|
| 78 | <property name="dist.tarfile" value="${build.base.dir}/${pkgname}.tar.gz" override="true"/> |
|---|
| 79 | <property name="dist.pearfile" value="${build.base.dir}/${pkgname}-pear.tgz" override="true"/> |
|---|
| 80 | </target> |
|---|
| 81 | |
|---|
| 82 | <target name="lint" description="Check syntax of PHP source files"> |
|---|
| 83 | <phplint> |
|---|
| 84 | <fileset refid="src"/> |
|---|
| 85 | </phplint> |
|---|
| 86 | </target> |
|---|
| 87 | |
|---|
| 88 | <target name="lint-demos" description="Check syntax of demo files and configuration files"> |
|---|
| 89 | <echo>Validate application configuration</echo> |
|---|
| 90 | <xmllint schema="${application.xsd}"> |
|---|
| 91 | <fileset dir="demos"> |
|---|
| 92 | <exclude name="**/.svn"/> |
|---|
| 93 | <include name="**/application.xml"/> |
|---|
| 94 | </fileset> |
|---|
| 95 | </xmllint> |
|---|
| 96 | <echo>Validate page configuration</echo> |
|---|
| 97 | <xmllint schema="${config.xsd}"> |
|---|
| 98 | <fileset dir="demos"> |
|---|
| 99 | <exclude name="**/.svn"/> |
|---|
| 100 | <include name="**/config.xml"/> |
|---|
| 101 | </fileset> |
|---|
| 102 | </xmllint> |
|---|
| 103 | <phplint> |
|---|
| 104 | <fileset dir="demos"> |
|---|
| 105 | <exclude name="**/.svn"/> |
|---|
| 106 | <include name="**/*.php"/> |
|---|
| 107 | </fileset> |
|---|
| 108 | </phplint> |
|---|
| 109 | </target> |
|---|
| 110 | |
|---|
| 111 | <target name="prepare" description="Prepare directory layout for build"> |
|---|
| 112 | <phingcall target="clean"/> |
|---|
| 113 | <mkdir dir="${build.base.dir}"/> |
|---|
| 114 | <mkdir dir="${dist.base.dir}"/> |
|---|
| 115 | <mkdir dir="${reports.unit.dir}"/> |
|---|
| 116 | <mkdir dir="${reports.codecoverage.dir}"/> |
|---|
| 117 | <mkdir dir="${doc.build.dir}"/> |
|---|
| 118 | </target> |
|---|
| 119 | |
|---|
| 120 | <target name="doc" description="Generate API documentation"> |
|---|
| 121 | <delete dir="${doc.build.dir}"/> |
|---|
| 122 | <phpdoc title="PRADO ${version} API Documentation" destdir="${doc.build.dir}" sourcepath="${src.dir}" output="HTML:Smarty:PHP"/> |
|---|
| 123 | </target> |
|---|
| 124 | |
|---|
| 125 | <target name="test" description="Run unit tests"> |
|---|
| 126 | <echo>Preparing directory structure</echo> |
|---|
| 127 | <delete dir="${reports.unit.dir}"/> |
|---|
| 128 | <delete dir="${reports.codecoverage.dir}"/> |
|---|
| 129 | <mkdir dir="${reports.unit.dir}"/> |
|---|
| 130 | <mkdir dir="${reports.codecoverage.dir}"/> |
|---|
| 131 | |
|---|
| 132 | <echo>Preparing Code Coverage Database</echo> |
|---|
| 133 | <coverage-setup database="${reports.codecoverage.dir}/coverage.db"> |
|---|
| 134 | <fileset dir="${src.dir}"> |
|---|
| 135 | <include name="**/*.php"/> |
|---|
| 136 | <exclude name="Web/Javascripts/js/clientscripts.php"/> |
|---|
| 137 | <exclude name="Data/TCache.php"/> |
|---|
| 138 | <exclude name="DataAccess/**/*.php"/> |
|---|
| 139 | <exclude name="I18N/core/Gettext/MO.php"/> |
|---|
| 140 | <exclude name="I18N/core/Gettext/PO.php"/> |
|---|
| 141 | <exclude name="I18N/core/util.php"/> |
|---|
| 142 | <exclude name="I18N/TGlobalization.php"/> |
|---|
| 143 | <exclude name="I18N/TGlobalizationAutoDetect.php"/> |
|---|
| 144 | <exclude name="Security/TUserManager.php"/> |
|---|
| 145 | <exclude name="Security/TMembershipManager.php"/> |
|---|
| 146 | <exclude name="core.php"/> |
|---|
| 147 | <exclude name="3rdParty/**/*.php"/> |
|---|
| 148 | <exclude name="pradolite.php"/> |
|---|
| 149 | <exclude name="prado.php"/> |
|---|
| 150 | </fileset> |
|---|
| 151 | </coverage-setup> |
|---|
| 152 | |
|---|
| 153 | <echo>Running Unit Tests</echo> |
|---|
| 154 | <phpunit2 codecoverage="true" haltonfailure="true" haltonerror="true" printsummary="true"> |
|---|
| 155 | <batchtest> |
|---|
| 156 | <fileset dir="${tests.dir}"> |
|---|
| 157 | <include name="**/*Test.php"/> |
|---|
| 158 | </fileset> |
|---|
| 159 | </batchtest> |
|---|
| 160 | <formatter type="xml" todir="${reports.dir}" outfile="logfile.xml"/> |
|---|
| 161 | </phpunit2> |
|---|
| 162 | |
|---|
| 163 | <echo>Creating Unit Test Report</echo> |
|---|
| 164 | <phpunit2report infile="${reports.dir}/logfile.xml" format="frames" styledir="${reports.style.dir}" todir="${reports.unit.dir}"/> |
|---|
| 165 | |
|---|
| 166 | <echo>Creating Code Coverage Report</echo> |
|---|
| 167 | <coverage-report outfile="${reports.dir}/coverage.xml" geshipath="${reports.geshi.dir}" geshilanguagespath="${reports.geshi.dir}/geshi"> |
|---|
| 168 | <report todir="${reports.codecoverage.dir}" styledir="${reports.style.dir}"/> |
|---|
| 169 | </coverage-report> |
|---|
| 170 | </target> |
|---|
| 171 | |
|---|
| 172 | |
|---|
| 173 | <target name="build-standard-package"> |
|---|
| 174 | <echo>Building standard package...</echo> |
|---|
| 175 | <copy todir="${build.src.dir}"> |
|---|
| 176 | <fileset refid="src"/> |
|---|
| 177 | <fileset refid="docs"/> |
|---|
| 178 | <fileset refid="misc"/> |
|---|
| 179 | <fileset refid="demos"/> |
|---|
| 180 | <fileset dir="${build.base.dir}"> |
|---|
| 181 | <include name="docs/manual/**/*"/> |
|---|
| 182 | <include name="${prado.lite}"/> |
|---|
| 183 | </fileset> |
|---|
| 184 | </copy> |
|---|
| 185 | </target> |
|---|
| 186 | |
|---|
| 187 | <target name="build" depends="versioncheck,prepare,lint,lint-demos,test,doc,pradolite,build-standard-package" description="Creating the main PRADO build"> |
|---|
| 188 | </target> |
|---|
| 189 | |
|---|
| 190 | <target name="dist" depends="build" description="Create PRADO distributions"> |
|---|
| 191 | <tar compression="gzip" destFile="${dist.tarfile}" basedir="${build.base.dir}/standard"/> |
|---|
| 192 | <zip destfile="${dist.zipfile}" basedir="${build.base.dir}/standard"/> |
|---|
| 193 | </target> |
|---|
| 194 | |
|---|
| 195 | <target name="clean"> |
|---|
| 196 | <echo>Cleaning up the mess</echo> |
|---|
| 197 | <delete dir="${build.base.dir}"/> |
|---|
| 198 | <delete dir="${dist.base.dir}"/> |
|---|
| 199 | </target> |
|---|
| 200 | |
|---|
| 201 | <target name="pradolite"> |
|---|
| 202 | <echo>Compiling PRADO Lite</echo> |
|---|
| 203 | <delete file="${build.base.dir}/${prado.lite}"/> |
|---|
| 204 | <append destFile="${build.base.dir}/${prado.lite}"> |
|---|
| 205 | <filterchain> |
|---|
| 206 | <stripphpcomments /> |
|---|
| 207 | <replaceregexp> |
|---|
| 208 | <regexp pattern="Prado::using\(.*\);" replace=""/> |
|---|
| 209 | <regexp pattern="(require|require_once)\s*\(.*?;" replace=""/> |
|---|
| 210 | <regexp pattern="(include|include_once)\s*\(.*?;" replace=""/> |
|---|
| 211 | <regexp pattern="Prado::trace\(.*\);" replace=""/> |
|---|
| 212 | <regexp pattern="\r" replace=""/> |
|---|
| 213 | </replaceregexp> |
|---|
| 214 | <tabtospaces tablength="0"/> |
|---|
| 215 | </filterchain> |
|---|
| 216 | <filelist dir="${src.dir}" files="TComponent.php,TApplicationComponent.php,Exceptions/TException.php,Collections/TList.php,Collections/TMap.php,Collections/TAttributeCollection.php,Data/TXmlDocument.php,Web/THttpUtility.php,Web/Javascripts/TJavaScript.php,Data/TCache.php,Data/TDataFieldAccessor.php,Log/TLogger.php,core.php,prado.php,TApplication.php,Exceptions/TErrorHandler.php,Web/THttpRequest.php,Web/THttpResponse.php,Web/THttpSession.php,Web/TAssetManager.php,Security/TAuthorizationRule.php,Security/TSecurityManager.php,Web/Services/TPageService.php,Web/UI/THtmlWriter.php,Web/UI/TTemplateManager.php,Web/UI/TThemeManager.php,Web/UI/TControlAdapter.php,Web/UI/TControl.php,Web/UI/TForm.php,Web/UI/TClientScriptManager.php,Web/UI/TTemplateControl.php,Web/UI/TPage.php,Web/UI/TPageStatePersister.php,Web/UI/WebControls/TFont.php,Web/UI/WebControls/TStyle.php,Web/UI/WebControls/TWebControlAdapter.php,Web/UI/WebControls/TWebControl.php,Web/UI/WebControls/TContent.php,Web/UI/WebControls/TContentPlaceHolder.php,Web/UI/WebControls/TExpression.php,Web/UI/WebControls/TStatements.php,Web/UI/WebControls/THead.php"/> |
|---|
| 217 | </append> |
|---|
| 218 | <phplint file="${build.base.dir}/${prado.lite}"/> |
|---|
| 219 | <exec command="php -e ${prado.lite}" dir="${build.base.dir}" passthru="true" checkreturn="true"/> |
|---|
| 220 | </target> |
|---|
| 221 | </project> |
|---|