root/tags/3.0b/build.xml

Revision 729, 9.5 kB (checked in by knut, 3 years ago)

Corrected references to XSD and DTD files

Line 
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>
Note: See TracBrowser for help on using the browser.