]> WPIA git - gigi.git/blob - build.xml
a9ebbcbde9171ba7db5338f71c963214ca5fe169
[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             <test name="org.cacert.gigi.TestSSL" todir="${junit.output.dir}"/>
120             <test name="org.cacert.gigi.LoginTest" todir="${junit.output.dir}"/>
121             <test name="org.cacert.gigi.pages.main.RegisterPageTest" todir="${junit.output.dir}"/>
122             <test name="org.cacert.gigi.pages.wot.TestAssurance" todir="${junit.output.dir}"/>
123             <classpath refid="cacert-gigi.test.classpath"/>
124         </junit>
125     </target>
126     <target name="junitreport">
127         <junitreport todir="${junit.output.dir}">
128             <fileset dir="${junit.output.dir}">
129                 <include name="TEST-*.xml"/>
130             </fileset>
131             <report format="frames" todir="${junit.output.dir}"/>
132         </junitreport>
133     </target>
134 </project>