]> WPIA git - gigi.git/blob - build.xml
Adding debian package
[gigi.git] / build.xml
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <project basedir="." default="develop" name="cacert-gigi" xmlns:jacoco="antlib:org.jacoco.ant">
3
4         <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
5                 <classpath path="/usr/share/java/jacocoant.jar" />
6         </taskdef>
7
8         <property environment="env" />
9         <property name="PACKAGE" value="cacert-gigi" />
10         <property name="junit.output.dir" value="junit" />
11         <property name="debuglevel" value="source,lines,vars" />
12         <property name="target" value="1.8" />
13         <property name="source" value="1.8" />
14         <property name="mysqlconnector" value="/usr/share/java/mysql-connector-java.jar" />
15         <property name="juintexec" value="/usr/share/java" />
16         <path id="JUnit 4.libraryclasspath">
17                 <pathelement location="${juintexec}/junit4.jar" />
18                 <pathelement location="${juintexec}/hamcrest-core.jar" />
19         </path>
20         <path id="cacert-gigi.classpath">
21                 <pathelement location="bin" />
22                 <pathelement location="binutil" />
23                 <pathelement location="${mysqlconnector}" />
24         </path>
25         <path id="cacert-gigi.test.classpath">
26                 <pathelement location="bin" />
27                 <pathelement location="binutil" />
28                 <pathelement location="bintest" />
29                 <path refid="JUnit 4.libraryclasspath" />
30                 <pathelement location="${mysqlconnector}" />
31         </path>
32         <target name="init">
33                 <mkdir dir="bin" />
34                 <mkdir dir="binutil" />
35                 <mkdir dir="bintest" />
36
37                 <copy includeemptydirs="false" todir="bin">
38                         <fileset dir="lib/servlet-api">
39                                 <exclude name="**/*.launch" />
40                                 <exclude name="**/*.java" />
41                         </fileset>
42                 </copy>
43                 <copy includeemptydirs="false" todir="bin">
44                         <fileset dir="lib/jetty">
45                                 <exclude name="**/*.launch" />
46                                 <exclude name="**/*.java" />
47                         </fileset>
48                 </copy>
49                 <copy includeemptydirs="false" todir="bin">
50                         <fileset dir="src">
51                                 <exclude name="**/*.launch" />
52                                 <exclude name="**/*.java" />
53                         </fileset>
54                 </copy>
55                 <copy includeemptydirs="false" todir="bin">
56                         <fileset dir="util">
57                                 <exclude name="**/*.launch" />
58                                 <exclude name="**/*.java" />
59                         </fileset>
60                 </copy>
61                 <copy includeemptydirs="false" todir="bintest">
62                         <fileset dir="tests">
63                                 <exclude name="**/*.launch" />
64                                 <exclude name="**/*.java" />
65                         </fileset>
66                 </copy>
67         </target>
68         <target name="clean">
69                 <delete dir="bin" />
70         </target>
71         <target name="clean-test">
72                 <delete dir="bintest" />
73                 <delete dir="cocoReport" failonerror="false"/>
74
75         </target>
76         <target depends="clean,clean-test" name="cleanall" />
77         <target depends="build-project, native" name="build" />
78         <target depends="init" name="build-project">
79                 <echo message="${ant.project.name}: ${ant.file}" />
80                 <javac debug="true" debuglevel="${debuglevel}" destdir="bin"
81                         includeantruntime="false" source="${source}" target="${target}">
82                         <compilerarg value="-XDignore.symbol.file"/>
83                         <src path="lib/servlet-api" />
84                         <src path="lib/jetty" />
85                         <src path="lib/jtar" />
86                         <src path="src" />
87                         <classpath refid="cacert-gigi.classpath" />
88                 </javac>
89                 <javac debug="true" debuglevel="${debuglevel}" destdir="binutil"
90                         includeantruntime="false" source="${source}" target="${target}">
91                         <compilerarg value="-XDignore.symbol.file"/>
92                         <src path="util" />
93                         <classpath refid="cacert-gigi.classpath" />
94                 </javac>
95         </target>
96
97         <target name="native">
98                 <exec executable="make" dir="natives"/>
99         </target>
100
101         <target depends="build" name="pack">
102                 <jar destfile="gigi.jar" basedir="bin" manifest="Gigi.MF" update="false"/>
103                 <jar destfile="gigi.jar" basedir="binutil" update="on"/>
104         </target>
105
106         <target depends="test,native" name="bundle">
107                 <zip destfile="gigi-linux_amd64.zip" basedir="."
108                         includes="gigi.jar,native/*.so,doc/tableStructure.sql,static/**,templates/**" />
109         </target>
110         <target name="static-bundle">
111                 <mkdir dir="work"/>
112                 <mkdir dir="work/static"/>
113                 <copy todir="work/static">
114                         <fileset dir="static"/>
115                 </copy>
116                 <move file="work/static/static/images/cacert4-test.png" tofile="work/static/static/images/cacert4.png"/>
117                 <delete file="work/static/static/image/cacert4-test.png"/>
118                 <tar destfile="static.tar.gz" compression="gzip" basedir="work"
119                         includes="../doc/tableStructure.sql,**,templates/**" />
120         </target>
121
122         <target name="static-bundle-release">
123                 <mkdir dir="work"/>
124                 <mkdir dir="work/static"/>
125                 <copy todir="work/static">
126                         <fileset dir="static"/>
127                 </copy>
128                 <delete file="work/static/static/image/cacert4-test.png"/>
129                 <tar destfile="static.tar.gz" compression="gzip" basedir="work"
130                         includes="../doc/tableStructure.sql,**,templates/**" />
131         </target>
132
133         <target name="develop" depends="bundle,static-bundle" />
134
135         <target name="release" depends="bundle,static-bundle-release" />
136
137         <target depends="init,build-project" name="build-project-test">
138                 <echo message="${ant.project.name}: ${ant.file}" />
139                 <javac debug="true" debuglevel="${debuglevel}" destdir="bintest"
140                         includeantruntime="false" source="${source}" target="${target}">
141                         <compilerarg value="-XDignore.symbol.file"/>
142                         <src path="tests" />
143                         <classpath refid="cacert-gigi.test.classpath" />
144                 </javac>
145         </target>
146         <target name="check-locale">
147                 <available file="locale/de.xml" property="locale.present" />
148         </target>
149         <target name="FetchLocales" depends="check-locale" unless="locale.present">
150                 <java classname="org.cacert.gigi.util.FetchLocales" failonerror="true"
151                         fork="yes">
152                         <classpath refid="cacert-gigi.classpath" />
153                 </java>
154         </target>
155         <target name="check-generateKeys">
156                 <available file="config/keystore.pkcs12" property="keystore.present" />
157         </target>
158         <target name="generateKeys" depends="check-generateKeys" unless="keystore.present">
159                 <exec executable="./generateKeys.sh" dir="keys" />
160                 <exec executable="./generateTruststore.sh" dir="keys">
161                         <arg value="-noprompt" />
162                 </exec>
163         </target>
164         <target name="reset-db">
165                 <copy file="config/test.properties" tofile="config/gigi.properties"/>
166                 <java classname="org.cacert.gigi.util.DatabaseManager">
167                         <arg value="--test"/>
168                         <classpath refid="cacert-gigi.classpath" />
169                 </java>
170         </target>
171         <target name="test" depends="build-project-test,generateKeys,FetchLocales,pack,reset-db">
172                 <delete failonerror="false">
173                         <fileset dir=".">
174                                 <include name="jacoco.exec"/>
175                                 <include name="tester.exec"/>
176                         </fileset>
177                 </delete>
178                 <mkdir dir="${junit.output.dir}" />
179                 <junit fork="yes" printsummary="withOutAndErr">
180                         <jvmarg value="-javaagent:/usr/share/java/jacocoagent.jar=destfile=tester.exec"/>
181                         <formatter type="xml" />
182                         <batchtest fork="yes" todir="${junit.output.dir}">
183                                 <fileset dir="tests">
184                                         <include name="**/*.java" />
185                                         <exclude name="**/testUtils/**" />
186                                 </fileset>
187                         </batchtest>
188                         <classpath refid="cacert-gigi.test.classpath" />
189                 </junit>
190         </target>
191         <target name="junitreport">
192                 <junitreport todir="${junit.output.dir}">
193                         <fileset dir="${junit.output.dir}">
194                                 <include name="TEST-*.xml" />
195                         </fileset>
196                         <report format="frames" todir="${junit.output.dir}" />
197                 </junitreport>
198         </target>
199         <target name="generatecoco">
200                 <jacoco:merge destfile="merged.exec">
201                         <fileset dir="." includes="*.exec"/>
202                 </jacoco:merge>
203                 <jacoco:report>
204                         <executiondata>
205                                 <file file="merged.exec" />
206                         </executiondata>
207
208                         <structure name="CAcert gigi">
209                                 <group name="Server">
210                                         <classfiles>
211                                                 <fileset dir="bin">
212                                                         <include name="org/cacert/gigi/**"/>
213                                                 </fileset>
214                                         </classfiles>
215                                         <sourcefiles encoding="UTF-8">
216                                                 <fileset dir="src">
217                                                         <include name="org/cacert/gigi/**"/>
218                                                 </fileset>
219                                         </sourcefiles>
220                                 </group>
221                                 <group name="Testcases">
222                                         <classfiles>
223                                                 <fileset dir="bintest">
224                                                         <include name="org/cacert/gigi/**"/>
225                                                 </fileset>
226                                         </classfiles>
227                                         <sourcefiles encoding="UTF-8">
228                                                 <fileset dir="tests">
229                                                         <include name="org/cacert/gigi/**"/>
230                                                 </fileset>
231                                         </sourcefiles>
232                                 </group>
233                         </structure>
234
235                         <html destdir="cocoReport"/>
236
237                 </jacoco:report>
238         </target>
239         <target name="install-native" depends="native">
240                 <mkdir dir="${env.DESTDIR}/usr/lib/jni"/>
241                 <copy file="natives/libsetuid.so" todir="${env.DESTDIR}/usr/lib/jni"/>
242         </target>
243         <target name="install" depends="pack">
244                 <mkdir dir="${env.DESTDIR}/usr/share/java"/>
245                 <copy file="gigi.jar" tofile="${env.DESTDIR}/usr/share/java/gigi.jar"/>
246
247                 <mkdir dir="${env.DESTDIR}/usr/bin"/>
248                 <copy file="doc/scripts/gigi" tofile="${env.DESTDIR}/usr/bin/gigi"/>
249
250                 <chmod file="${env.DESTDIR}/usr/bin/gigi" perm="+x"/>
251                 <mkdir dir="${env.DESTDIR}/usr/share/dbconfig-common/data/${PACKAGE}/install/"/>
252                 <copy file="doc/tableStructure.sql" tofile="${env.DESTDIR}/usr/share/dbconfig-common/data/${PACKAGE}/install/mysql.sql"/>
253
254                 <mkdir dir="${env.DESTDIR}/usr/share/cacert-gigi/static"/>
255                 <copy todir="${env.DESTDIR}/usr/share/cacert-gigi/static">
256                         <fileset dir="static"/>
257                 </copy>
258                 <mkdir dir="${env.DESTDIR}/var/lib/cacert-gigi/doc"/>
259                 <exec executable="ln">
260                   <arg value="-s"/>
261                   <arg value="/usr/share/dbconfig-common/data/${PACKAGE}/install/mysql.sql"/>
262                   <arg value="${env.DESTDIR}/var/lib/cacert-gigi/doc/tableStructure.sql"/>
263                 </exec>
264                 <mkdir dir="${env.DESTDIR}/var/lib/cacert-gigi/natives"/>
265                 <delete failonerror="false" file="${env.DESTDIR}/var/lib/cacert-gigi/static"/>
266                 <exec executable="ln">
267                         <arg value="-s"/>
268                         <arg value="/usr/share/cacert-gigi/static"/>
269                         <arg value="${env.DESTDIR}/var/lib/cacert-gigi/static"/>
270                 </exec>
271                 <exec executable="ln">
272                         <arg value="-s"/>
273                         <arg value="/usr/lib/jni/libsetuid.so"/>
274                         <arg value="${env.DESTDIR}/var/lib/cacert-gigi/natives/libsetuid.so"/>
275                 </exec>
276
277                 <mkdir dir="${env.DESTDIR}/etc/cacert-gigi"/>
278                 <!--<copy todir="${env.DESTDIR}/DEBIAN">
279                         <fileset dir="debian">
280                         </fileset>
281                 </copy>-->
282         </target>
283 </project>