-
Notifications
You must be signed in to change notification settings - Fork 460
/
build.xml
274 lines (218 loc) · 10.5 KB
/
build.xml
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
89
90
91
92
93
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
<?xml version="1.0"?>
<!--
Phing Usage:
phing [ <options> ] [ <targetnames> ]
example:
phing dist ...where "dist" is the target for execution
Phing Targets:
prepare: Creates any necessary staging directories (has .pear suffix option)
build: Prepares and stages files (has .pear suffix option)
stage: Stages files either copying or exporting to staging directory (has .pear suffix option)
dist: Stages and packages files to zip and gzip tarball and PEAR TGZ package
pearify: Create a pear package.xml and source code directory tree
docs: Generates the HTML manual only
clean: Cleans up, deletes staging directories, returns to state 0
Other Targets:
src.check: Check for the existence of local source code
svn.export: Export the source code from subversion
-->
<project name="MockMe" default="dist" basedir=".">
<taskdef classname="phing.tasks.ext.d51PearPkg2Task" name="d51pearpkg2" />
<!--taskdef classname="phing.tasks.ext.PhpDocbookHighlighterTask" name="phpdocbookhighlighter" /-->
<property name="spec.src.default" value="${project.basedir}/.." />
<property name="spec.src.classpath" value="/library" />
<property name="spec.name" value="Mockery" />
<property name="spec.version" value="0.1.0alpha" /> <!-- VERSION FOR EDITING -->
<property name="spec.stability" value="alpha" />
<property name="spec.stage" value="${project.basedir}/stage" />
<property name="spec.pear" value="${project.basedir}/stage-pear" />
<property name="spec.stage.dir" value="${spec.stage}/${spec.name}-${spec.version}" />
<property name="spec.pear.dir" value="${spec.pear}/${spec.name}-${spec.version}" />
<property name="spec.pear.package" value="${spec.name}-${spec.version}.tgz" />
<property name="spec.dist" value="${project.basedir}/dist" />
<property name="spec.dist.pear" value="${spec.dist}/PEAR" />
<property name="spec.tarball" value="${spec.stage}/${spec.name}-${spec.version}.tar" />
<property name="spec.tarball.pear" value="${spec.stage}/${spec.name}-${spec.version}.tgz" />
<property name="spec.zipball" value="${spec.stage}/${spec.name}-${spec.version}.zip" />
<property name="lang" value="en" />
<property name="languages" value="en" /> <!-- Add additional manual languages here -->
<php expression="date('Y-m-d')" returnProperty="date"/>
<property name="spec.manual" value="${project.basedir}/stage-manual" />
<property name="spec.manual.dir" value="${spec.manual}/docbook" />
<property name="spec.dist.manual" value="${spec.dist}/manual" />
<property name="docbookxslurl" value="http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" />
<property name="docbookdtdurl" value="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" />
<property file="build.properties" override="true" />
<target name="build" depends="prepare, prepare.pear, stage, stage.pear">
</target>
<target name="build.pear" depends="prepare.pear, stage.pear">
</target>
<target name="build.manual" depends="prepare.manual, stage.manual">
</target>
<target name="src.check">
<available file="${spec.src.default}/library/Mockery/Framework.php" property="spec.src" value="${spec.src.default}" />
<!--svnlastrevision svnpath="svn" repositoryurl="${spec.svn.url}" workingcopy="${project.basedir}" propertyname="spec.svn.revision" /-->
</target>
<target name="prepare" depends="src.check, prepare.dist">
<echo msg="Making directory ${spec.stage}" />
<mkdir dir="${spec.stage}" />
<echo msg="Making directory ${spec.stage.dir}" />
<mkdir dir="${spec.stage.dir}" />
</target>
<target name="prepare.pear" depends="src.check, prepare.dist">
<echo msg="Making directory ${spec.pear}" />
<mkdir dir="${spec.pear}" />
<echo msg="Making directory ${spec.pear.dir}" />
<mkdir dir="${spec.pear.dir}" />
</target>
<target name="prepare.dist">
<echo msg="Making Distribution Files directory ${spec.dist}" />
<mkdir dir="${spec.dist}" />
<mkdir dir="${spec.dist.pear}" />
</target>
<target name="prepare.manual" depends="src.check">
<echo msg="Making Manual directory ${spec.manual}" />
<mkdir dir="${spec.manual}" />
<echo msg="Making directory ${spec.manual.dir}" />
<mkdir dir="${spec.manual.dir}" />
<mkdir dir="${spec.dist.manual}" />
</target>
<target name="svn.export" unless="spec.src">
<svnexport svnpath="svn" repositoryurl="${spec.svn.url}" todir="${spec.svn.export}" />
<property name="spec.src" value="${spec.svn.export}" />
</target>
<target name="stage" depends="prepare, svn.export">
<echo msg="Staging files from ${spec.src} to ${spec.stage.dir} for Standard Packaging" />
<copy todir="${spec.stage.dir}">
<fileset dir="${spec.src}">
<exclude name="**/.**/**" />
<exclude name="build/**" />
<exclude name="docs/**" />
</fileset>
</copy>
</target>
<target name="stage.pear" depends="prepare.pear, svn.export">
<echo msg="Staging files from ${spec.src} to ${spec.pear.dir} for PEAR Packaging" />
<copy todir="${spec.pear.dir}">
<fileset dir="${spec.src}">
<exclude name="**/.**/**" />
<exclude name="build/**" />
<exclude name="docs/**" />
<exclude name="library/**" />
</fileset>
</copy>
<copy todir="${spec.pear.dir}">
<fileset dir="${spec.src}${spec.src.classpath}">
<exclude name="**/.**/**" />
</fileset>
</copy>
</target>
<target name="stage.manual" depends="prepare.manual, svn.export">
<echo msg="Staging files from ${spec.src} to ${spec.manual.dir} for DocBook > HTML generation" />
<copy todir="${spec.manual.dir}">
<filterchain>
<replacetokens>
<token key="DOCBOOK_XSL" value="${docbookxslurl}" />
<token key="DOCBOOK_DTD" value="${docbookdtdurl}" />
</replacetokens>
</filterchain>
<fileset dir="${spec.src}/docs/manual">
</fileset>
</copy>
</target>
<target name="pearify" depends="build.pear">
<d51pearpkg2 baseinstalldir="/" dir="${spec.pear.dir}">
<name>Mockery</name>
<summary>A cross framework Mock Object and Stubbing Framework for PHP5</summary>
<channel>pear.php.net</channel>
<description>
Note: This is an alpha release for testing and feedback.
</description>
<date>${date}</date>
<lead user="padraic" name="Pádraic Brady" email="padraic@php.net" />
<license>New BSD</license>
<version release="${spec.version}" api="${spec.version}" />
<stability release="${spec.stability}" api="${spec.stability}" />
<dependencies>
<php minimum_version="5.2.3" />
<pear minimum_version="1.6.0" />
</dependencies>
<dirroles key="bin">script</dirroles>
<dirroles key="tests">test</dirroles>
<dirroles key="specs">test</dirroles>
<dirroles key="docs">doc</dirroles>
<changelog version="0.1.0alpha" date="2009-03-05" license="New BSD">
This is an ALPHA release for testing and
feedback only.
</changelog>
</d51pearpkg2>
</target>
<target name="dist" depends="build, pearify">
<echo message="Creating tar and zip archives..." />
<tar destfile="${spec.tarball}.gz" basedir="${spec.stage.dir}" compression="gzip" />
<move file="${spec.tarball}.gz" todir="${spec.dist}" overwrite="true" />
<echo message="ZIP archive creation is disabled in build.xml file" />
<!--zip destfile="${spec.zipball}" basedir="${spec.stage.dir}" /-->
<!--move file="${spec.zipball}" todir="${spec.dist}" overwrite="true" /-->
<echo message="Creating PEAR Package..." />
<exec command="pear package" dir="${spec.pear.dir}" />
<move file="${spec.pear.dir}/${spec.pear.package}" todir="${spec.dist.pear}" overwrite="true" />
</target>
<target name="clean">
<delete dir="${spec.stage}" />
<delete dir="${spec.pear}" />
<delete dir="${spec.dist}" />
<delete dir="${spec.manual}" />
</target>
<target name="install" depends="dist">
<exec command="pear install ${spec.pear.package}" dir="${spec.dist.pear}" />
</target>
<target name="install.force" depends="dist">
<exec command="pear install --force ${spec.pear.package}" dir="${spec.dist.pear}" />
</target>
<target name="docs" depends="build.manual">
<echo msg="Rendering manual..." />
<foreach list="${languages}" param="lang" target="docs.lang" />
<echo msg="Manual has been rendered." />
<echo msg="Rendering API Docs..." />
<mkdir dir="${spec.dist.manual}/apidocs" />
<phpdoc title="Mockery API Documentation"
destdir="${spec.dist.manual}/apidocs"
sourcecode="${spec.src}/src"
output="HTML:frames:DOM/earthli">
<fileset dir="${spec.src}/src">
<include name="**" />
</fileset>
</phpdoc>
<echo msg="API Docs have been rendered." />
</target>
<target name="docs.lang">
<echo msg="Rendering ${lang} language manual." />
<copy file="${spec.manual.dir}/${lang}/html/style.css" todir="${spec.dist.manual}/${lang}" />
<mkdir dir="${spec.dist.manual}/${lang}/images" />
<copy file="${spec.manual.dir}/${lang}/images/note.png" todir="${spec.dist.manual}/${lang}/images" />
<copy todir="${spec.dist.manual}/${lang}/">
<filterchain>
<xincludefilter basedir="${spec.manual.dir}/${lang}/" />
<xsltfilter style="${spec.manual.dir}/${lang}/html.xsl">
<param name="base.dir" expression="${spec.dist.manual}/${lang}/" />
</xsltfilter>
</filterchain>
<fileset dir="${spec.manual.dir}/${lang}/">
<include name="manual.xml" />
</fileset>
</copy>
<phpdocbookhighlighter dir="${spec.dist.manual}/${lang}/" />
<echo msg="Manual for ${lang} language has been rendered." />
</target>
<target name="dist.docs" depends="docs">
<copy todir="${spec.stage.dir}/docs/manual">
<fileset dir="${spec.dist.manual}">
</fileset>
</copy>
<copy todir="${spec.pear.dir}/docs/manual">
<fileset dir="${spec.dist.manual}">
</fileset>
</copy>
</target>
</project>