ff8c6d626fda8d3ed4695dc64eeece255051ac0d
[gigi.git] / build.xml
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <project basedir="." default="all" name="cacert-gigi">
3         <property environment="env"/>
4         <property name="junit.output.dir" value="junit"/>
5         <property name="debuglevel" value="source,lines,vars"/>
6         <property name="target" value="1.8"/>
7         <property name="source" value="1.8"/>
8         <property name="mysqlconnector" value="mysql-connector-java-5.1.31-bin.jar"/>
9         <property name="juintexec" value="."/>
10         <path id="JUnit 4.libraryclasspath">
11                 <pathelement location="${juintexec}/junit.jar"/>
12                 <pathelement location="${juintexec}/org.hamcrest.core.jar"/>
13         </path>
14         <path id="cacert-gigi.classpath">
15                 <pathelement location="bin"/>
16                 <pathelement location="${mysqlconnector}"/>
17         </path>
18         <path id="cacert-gigi.test.classpath">
19                 <pathelement location="bin"/>
20                 <pathelement location="bintest"/>
21                 <path refid="JUnit 4.libraryclasspath"/>
22                 <pathelement location="${mysqlconnector}"/>
23         </path>
24         <target name="init">
25                 <mkdir dir="bin"/>
26                 <mkdir dir="bintest"/>
27
28                 <copy includeemptydirs="false" todir="bin">
29                         <fileset dir="lib/servlet-api">
30                                 <exclude name="**/*.launch"/>
31                                 <exclude name="**/*.java"/>
32                         </fileset>
33                 </copy>
34                 <copy includeemptydirs="false" todir="bin">
35                         <fileset dir="lib/jetty">
36                                 <exclude name="**/*.launch"/>
37                                 <exclude name="**/*.java"/>
38                         </fileset>
39                 </copy>
40                 <copy includeemptydirs="false" todir="bin">
41                         <fileset dir="src">
42                                 <exclude name="**/*.launch"/>
43                                 <exclude name="**/*.java"/>
44                         </fileset>
45                 </copy>
46                 <copy includeemptydirs="false" todir="bin">
47                         <fileset dir="util">
48                                 <exclude name="**/*.launch"/>
49                                 <exclude name="**/*.java"/>
50                         </fileset>
51                 </copy>
52                 <copy includeemptydirs="false" todir="bintest">
53                         <fileset dir="tests">
54                                 <exclude name="**/*.launch"/>
55                                 <exclude name="**/*.java"/>
56                         </fileset>
57                 </copy>
58         </target>
59         <target name="clean">
60                 <delete dir="bin"/>
61         </target>
62         <target depends="clean" name="cleanall"/>
63         <target depends="build-project, native" name="build"/>
64         <target depends="init" name="build-project">
65                 <echo message="${ant.project.name}: ${ant.file}"/>
66                 <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}">
67                         <src path="lib/servlet-api"/>
68                         <src path="lib/jetty"/>
69                         <src path="lib/jtar"/>
70                         <src path="src"/>
71                         <src path="util"/>
72                         <classpath refid="cacert-gigi.classpath"/>
73                 </javac>
74         </target>
75
76         <target name="native">
77                 <exec executable="make" dir="natives"/>
78         </target>
79
80         <target depends="build" name="pack">
81                 <jar destfile="gigi.jar" basedir="bin" manifest="Gigi.MF"/>
82         </target>
83
84         <target depends="test,native" name="bundle">
85                 <zip destfile="gigi-linux_amd64.zip" basedir="." includes="gigi.jar,native/*.so,doc/tableStructure.sql,static/**,templates/**"/>
86         </target>
87         <target name="static-bundle">
88                 <tar destfile="static.tar.gz" compression="gzip" basedir="." includes="doc/tableStructure.sql,static/**,templates/**"/>
89         </target>
90
91         <target name="all" depends="bundle,static-bundle"/>
92
93
94         <target depends="init,build-project" name="build-project-test">
95                 <echo message="${ant.project.name}: ${ant.file}"/>
96                 <javac debug="true" debuglevel="${debuglevel}" destdir="bintest" includeantruntime="false" source="${source}" target="${target}">
97                         <src path="tests"/>
98                         <classpath refid="cacert-gigi.test.classpath"/>
99                 </javac>
100         </target>
101         <target name="FetchLocales">
102                 <java classname="org.cacert.gigi.util.FetchLocales" failonerror="true" fork="yes">
103                         <classpath refid="cacert-gigi.classpath"/>
104                 </java>
105         </target>
106         <target name="check-generateKeys">
107                 <available file="config/keystore.pkcs12" property="keystore.present"/>
108         </target>
109         <target name="generateKeys" depends="check-generateKeys" unless="keystore.present">
110                 <exec executable="./generateKeys.sh" dir="doc/scripts"/>
111                 <exec executable="./generateTruststore.sh" dir="doc/scripts">
112                         <arg value="-noprompt"/>
113                 </exec>
114         </target>
115         <target name="test" depends="build-project-test,generateKeys,FetchLocales,pack">
116                 <mkdir dir="${junit.output.dir}"/>
117                 <junit fork="yes" printsummary="withOutAndErr">
118                         <formatter type="xml"/>
119                         <batchtest fork="yes" todir="${junit.output.dir}">
120                                 <fileset dir="tests">
121                                         <include name="**/*.java"/>
122                                         <exclude name="**/testUtils/**"/>
123                                 </fileset>
124                         </batchtest>
125                         <classpath refid="cacert-gigi.test.classpath"/>
126                 </junit>
127         </target>
128         <target name="junitreport">
129                 <junitreport todir="${junit.output.dir}">
130                         <fileset dir="${junit.output.dir}">
131                                 <include name="TEST-*.xml"/>
132                         </fileset>
133                         <report format="frames" todir="${junit.output.dir}"/>
134                 </junitreport>
135         </target>
136 </project>