Make GeSHi autoloading really work
[phorkie.git] / build.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <project name="phorkie" default="zip" basedir=".">
3   <!--
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,
7     tagging a release
8   -->
9   <property name="version"    value="0.8.0" />
10   <property name="stability"  value="beta" />
11   <property name="releasenotes" value="
12 Version 0.8.0 - 2017-04-19
13 --------------------------
14 * Add support for git 2.11
15 * Fix 'Please tell me who you are' messages
16 * Fix crash on /new when a paste has been deleted
17 * Fix crash on broken git repositories
18 * Fix memory leak
19 * Move phorkie off sourceforge
20 " />
21   <property name="libdir"      value="${phing.dir}/lib"/>
22
23   <property name="zipfile"     value="${phing.project.name}-${version}.tar.bz2" />
24   <property name="pharfile"    value="${phing.project.name}-${version}.phar" />
25   <property name="pkgfile"     value="${phing.project.name}-${version}.tgz" />
26
27   <property name="pharpath"    value="${phing.dir}/dist/${pharfile}" />
28   <property name="distfile"    value="dist/${zipfile}" />
29   <property name="distpkgfile" value="dist/pear/${pkgfile}" />
30
31   <fileset id="fs.zip" dir=".">
32    <include name="data/**"/>
33    <include name="scripts/**"/>
34    <include name="src/**"/>
35    <include name="www/**"/>
36
37    <include name="ChangeLog"/>
38    <include name="LICENSE"/>
39    <include name="NEWS.rst"/>
40    <include name="README.rst"/>
41
42    <exclude name="**/.git/"/>
43    <exclude name="**/.gitignore/"/>
44    <exclude name="data/cache/**"/>
45    <exclude name="data/config.php"/>
46    <exclude name="www/**/.phar"/>
47    <exclude name="www/repos"/>
48   </fileset>
49
50   <fileset id="fs.phar" dir="${phing.dir}">
51    <include name="data/**"/>
52    <include name="lib/**"/>
53    <include name="scripts/**"/>
54    <include name="src/**"/>
55    <include name="www/**"/>
56
57    <include name="ChangeLog"/>
58    <include name="README.rst"/>
59
60    <exclude name="**/.git/"/>
61    <exclude name="**/.gitignore/"/>
62    <exclude name="data/cache/**"/>
63    <exclude name="data/config.php"/>
64    <exclude name="www/**/.phar"/>
65    <exclude name="www/repos"/>
66   </fileset>
67
68   <fileset id="fs.doc" dir=".">
69    <include name="README.rst"/>
70    <include name="NEWS.rst"/>
71   </fileset>
72
73   <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" />
74
75
76   <target name="phar" depends="preparedirs,collectdeps"
77           description="Create phar file for release"
78   >
79    <delete file="${pharpath}"/>
80    <exec command="php scripts/build-rewritemap.php" dir="${phing.dir}"/>
81    <pharpackage basedir="${phing.dir}"
82                 destfile="${pharpath}"
83                 stub="${phing.dir}/src/stub-phar.php"
84                 alias="phorkie.phar"
85    >
86     <fileset refid="fs.phar"/>
87    </pharpackage>
88
89    <exec executable="bzip2" dir="${phing.dir}/dist">
90     <arg value="-kf"/>
91     <arg file="${pharpath}"/>
92    </exec>
93   </target>
94
95
96   <target name="collectdeps" description="Copy package dependencies to lib/">
97    <delete dir="${libdir}"/>
98    <mkdir dir="${libdir}"/>
99
100    <!-- requires phing >= 2.8.0 -->
101    <copy todir="${libdir}">
102     <pearPackageFileset package="pear.php.net/Cache_Lite"/><!-- OpenID -->
103     <pearPackageFileset package="pear.php.net/Console_Getopt"/>
104     <pearPackageFileset package="pear.php.net/Crypt_DiffieHellman"/><!-- OpenID -->
105     <pearPackageFileset package="pear.php.net/Date_HumanDiff"/>
106     <pearPackageFileset package="pear.geshi.org/geshi">
107      <!-- remove files that are probably not needed to save space in the .phar -->
108      <exclude name="geshi/arm.php"/>
109      <exclude name="geshi/autoit.php"/>
110      <exclude name="geshi/thinbasic.php"/>
111     </pearPackageFileset>
112     <pearPackageFileset package="pear.php.net/HTTP2"/>
113     <pearPackageFileset package="pear.php.net/HTTP_Request2"/>
114     <pearPackageFileset package="pear.php.net/MIME_Type"/>
115     <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect"/>
116     <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect" role="data"/>
117     <pearPackageFileset package="pear.michelf.com/Markdown"/>
118     <pearPackageFileset package="pear.php.net/Net_URL2"/>
119     <pearPackageFileset package="pear.php.net/OpenID"/>
120     <pearPackageFileset package="pear.php.net/Pager"/>
121     <pearPackageFileset package="pear.php.net/PEAR">
122      <include name="PEAR/Exception.php"/>
123      <include name="PEAR.php"/>
124      <include name="PEAR5.php"/>
125      <include name="OS/Guess.php"/>
126      <include name="System.php"/>
127     </pearPackageFileset>
128     <pearPackageFileset package="pear.php.net/Services_Libravatar"/>
129     <pearPackageFileset package="pear2.php.net/PEAR2_Services_Linkback"/>
130     <pearPackageFileset package="pear.php.net/Services_Yadis"/>
131     <pearPackageFileset package="pear.php.net/System_Command"/>
132     <pearPackageFileset package="pear.twig-project.org/Twig"/>
133     <pearPackageFileset package="pear.php.net/Validate"/>
134     <pearPackageFileset package="pear.php.net/VersionControl_Git"/>
135    </copy>
136   </target>
137
138
139   <target name="zip" depends="preparedirs"
140    description="Create zip file for release"
141    >
142     <!--
143       The release file is for end users, so it is safe to
144       remove anything developer-related.
145
146       Test your zip with: unzip -l phorkie-0.1.0.zip
147     -->
148     <echo msg="Creating distribution zip for phorkie ${version}"/>
149     <delete file="${distfile}" failonerror="false"/>
150     <tar compression="bzip2" destfile="${distfile}"
151          prefix="${phing.project.name}-${version}/"
152     >
153      <fileset refid="fs.zip"/>
154     </tar>
155   </target>
156
157
158   <target name="docs" description="render documentation">
159    <rST format="html" uptodate="true">
160     <fileset refid="fs.doc"/>
161     <mapper type="regexp" from="^(.+?).rst$" to="dist/docs/\1.html"/>
162    </rST>
163   </target>
164
165   <target name="clean-docs" description="delete rendered documentation files">
166    <delete dir="dist/docs" includeemptydirs="yes"/>
167   </target>
168
169
170   <target name="release" depends="check,phar,zip"
171    description="Package the new version"
172    >
173    <!-- meta-target -->
174   </target>
175
176
177   <target name="preparedirs">
178     <mkdir dir="dist" />
179   </target>
180
181   <target name="check" depends="preparedirs"
182    description="Check variables"
183    >
184     <fail unless="version" message="Version not defined!" />
185   </target>
186
187 </project>