1 <?xml version="1.0" encoding="utf-8"?>
2 <project name="phorkie" default="zip" basedir=".">
4 phorkie phing build file.
5 This script should provide a one-stop tool for all administrative
6 tasks around phorkie, like creating a release version,
9 <property name="version" value="0.8.1" />
10 <property name="stability" value="beta" />
12 <property name="libdir" value="${phing.dir}/lib"/>
14 <property name="zipfile" value="${phing.project.name}-${version}.tar.bz2" />
15 <property name="pharfile" value="${phing.project.name}-${version}.phar" />
16 <property name="pkgfile" value="${phing.project.name}-${version}.tgz" />
18 <property name="pharpath" value="${phing.dir}/dist/${pharfile}" />
19 <property name="distfile" value="dist/${zipfile}" />
20 <property name="distpkgfile" value="dist/pear/${pkgfile}" />
22 <fileset id="fs.zip" dir=".">
23 <include name="data/**"/>
24 <include name="scripts/**"/>
25 <include name="src/**"/>
26 <include name="www/**"/>
28 <include name="ChangeLog"/>
29 <include name="LICENSE"/>
30 <include name="NEWS.rst"/>
31 <include name="README.rst"/>
33 <exclude name="**/.git/"/>
34 <exclude name="**/.gitignore/"/>
35 <exclude name="data/cache/**"/>
36 <exclude name="data/config.php"/>
37 <exclude name="www/**/.phar"/>
38 <exclude name="www/repos"/>
41 <fileset id="fs.phar" dir="${phing.dir}">
42 <include name="data/**"/>
43 <include name="lib/**"/>
44 <include name="scripts/**"/>
45 <include name="src/**"/>
46 <include name="www/**"/>
48 <include name="ChangeLog"/>
49 <include name="README.rst"/>
51 <exclude name="**/.git/"/>
52 <exclude name="**/.gitignore/"/>
53 <exclude name="data/cache/**"/>
54 <exclude name="data/config.php"/>
55 <exclude name="www/**/.phar"/>
56 <exclude name="www/repos"/>
59 <fileset id="fs.doc" dir=".">
60 <include name="README.rst"/>
61 <include name="NEWS.rst"/>
64 <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" />
67 <target name="phar" depends="preparedirs,collectdeps"
68 description="Create phar file for release"
70 <delete file="${pharpath}"/>
71 <exec command="php scripts/build-rewritemap.php" dir="${phing.dir}"/>
72 <pharpackage basedir="${phing.dir}"
73 destfile="${pharpath}"
74 stub="${phing.dir}/src/stub-phar.php"
77 <fileset refid="fs.phar"/>
80 <exec executable="bzip2" dir="${phing.dir}/dist">
82 <arg file="${pharpath}"/>
87 <target name="collectdeps" description="Copy package dependencies to lib/">
88 <delete dir="${libdir}"/>
89 <mkdir dir="${libdir}"/>
91 <!-- requires phing >= 2.8.0 -->
92 <copy todir="${libdir}">
93 <pearPackageFileset package="pear.php.net/Cache_Lite"/><!-- OpenID -->
94 <pearPackageFileset package="pear.php.net/Console_Getopt"/>
95 <pearPackageFileset package="pear.php.net/Crypt_DiffieHellman"/><!-- OpenID -->
96 <pearPackageFileset package="pear.php.net/Date_HumanDiff"/>
97 <pearPackageFileset package="pear.geshi.org/geshi">
98 <!-- remove files that are probably not needed to save space in the .phar -->
99 <exclude name="geshi/arm.php"/>
100 <exclude name="geshi/autoit.php"/>
101 <exclude name="geshi/thinbasic.php"/>
102 </pearPackageFileset>
103 <pearPackageFileset package="pear.php.net/HTTP2"/>
104 <pearPackageFileset package="pear.php.net/HTTP_Request2"/>
105 <pearPackageFileset package="pear.php.net/MIME_Type"/>
106 <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect"/>
107 <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect" role="data"/>
108 <pearPackageFileset package="pear.michelf.com/Markdown"/>
109 <pearPackageFileset package="pear.php.net/Net_URL2"/>
110 <pearPackageFileset package="pear.php.net/OpenID"/>
111 <pearPackageFileset package="pear.php.net/Pager"/>
112 <pearPackageFileset package="pear.php.net/PEAR">
113 <include name="PEAR/Exception.php"/>
114 <include name="PEAR.php"/>
115 <include name="PEAR5.php"/>
116 <include name="OS/Guess.php"/>
117 <include name="System.php"/>
118 </pearPackageFileset>
119 <pearPackageFileset package="pear.php.net/Services_Libravatar"/>
120 <pearPackageFileset package="pear2.php.net/PEAR2_Services_Linkback"/>
121 <pearPackageFileset package="pear.php.net/Services_Yadis"/>
122 <pearPackageFileset package="pear.php.net/System_Command"/>
123 <pearPackageFileset package="pear.twig-project.org/Twig"/>
124 <pearPackageFileset package="pear.php.net/Validate"/>
125 <pearPackageFileset package="pear.php.net/VersionControl_Git"/>
130 <target name="zip" depends="preparedirs"
131 description="Create zip file for release"
134 The release file is for end users, so it is safe to
135 remove anything developer-related.
137 Test your zip with: unzip -l phorkie-0.1.0.zip
139 <echo msg="Creating distribution zip for phorkie ${version}"/>
140 <delete file="${distfile}" failonerror="false"/>
141 <tar compression="bzip2" destfile="${distfile}"
142 prefix="${phing.project.name}-${version}/"
144 <fileset refid="fs.zip"/>
149 <target name="docs" description="render documentation">
150 <rST format="html" uptodate="true">
151 <fileset refid="fs.doc"/>
152 <mapper type="regexp" from="^(.+?).rst$" to="dist/docs/\1.html"/>
156 <target name="clean-docs" description="delete rendered documentation files">
157 <delete dir="dist/docs" includeemptydirs="yes"/>
161 <target name="release" depends="check,phar,zip"
162 description="Package the new version"
168 <target name="preparedirs">
172 <target name="check" depends="preparedirs"
173 description="Check variables"
175 <fail unless="version" message="Version not defined!" />