-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
115 lines (95 loc) · 3.91 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="UTF-8"?>
<project name="db4o" default="jar" basedir=".">
<description>
DB4O doesn't provide a decent building script... here is the one we are going to use.
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="build-db4oj" location="build-db4oj"/>
<property name="build-db4ojdk1.2" location="build-db4ojdk1.2"/>
<property name="build-db4ojdk5" location="build-db4ojdk5"/>
<property name="jarfile" location="db4o.jar"/>
<!-- As of Git tag v33 of this repository db4o does not include any
code which is more recent than Java 1.5. However recent javac
versions do require this to be at least 1.6.
You can override this by passing the properties to the
Ant command! -->
<property name="javac.source.version" value="1.6"/>
<property name="javac.target.version" value="1.6"/>
<presetdef name="javac">
<!--
includeAntRuntime = "Whether to include the Ant run-time libraries in the classpath;
defaults to yes, unless build.sysclasspath is set. It is usually best to set this
to false so the script's behavior is not sensitive to the environment in which it
is run."
Source: https://ant.apache.org/manual/Tasks/javac.html
I don't know why anyone would want the build system on the classpath of his project,
this might be an Ant misfeature.
If we don't set this to false, we will get "warning: 'includeantruntime' was not
set defaulting to build.sysclasspath=last; set to false for repeatable builds".
TODO: Remove when Ant fixes this.
-->
<javac includeantruntime="false"/>
</presetdef>
<assertions>
<enable/>
</assertions>
<target name="mkdir">
<mkdir dir="${build}"/>
<mkdir dir="${build-db4oj}"/>
<mkdir dir="${build-db4ojdk1.2}"/>
<mkdir dir="${build-db4ojdk5}"/>
</target>
<!-- ================================================== -->
<target name="compile" depends="mkdir">
<!-- Create the time stamp -->
<tstamp/>
<javac srcdir="${src}" destdir="${build-db4oj}" debug="on" optimize="on" source="${javac.source.version}" target="${javac.target.version}">
<include name="db4oj/**/*.java"/>
<exclude name="db4oj/test/**/*.java"/>
</javac>
<javac srcdir="${src}" destdir="${build-db4ojdk1.2}" debug="on" optimize="on" source="${javac.source.version}" target="${javac.target.version}">
<classpath>
<pathelement location="${build-db4oj}"/>
</classpath>
<include name="db4ojdk1.2/**/*.java"/>
<exclude name="db4ojdk1.2/test/**/*.java"/>
</javac>
<javac srcdir="${src}" destdir="${build-db4ojdk5}" debug="on" optimize="on" source="${javac.source.version}" target="${javac.target.version}">
<classpath>
<pathelement location="${build-db4oj}"/>
<pathelement location="${build-db4ojdk1.2}"/>
</classpath>
<include name="db4ojdk5/**/*.java"/>
<exclude name="db4ojdk5/test/**/*.java"/>
</javac>
</target>
<!-- ================================================== -->
<target name="mergeOptimizations" depends="compile">
<!-- yes, order matters! -->
<copy todir="${build}/" overwrite="true">
<fileset dir="${build-db4oj}"/>
</copy>
<copy todir="${build}/" overwrite="true">
<fileset dir="${build-db4ojdk1.2}"/>
</copy>
<copy todir="${build}/" overwrite="true">
<fileset dir="${build-db4ojdk5}"/>
</copy>
</target>
<!-- ================================================== -->
<target name="jar" depends="compile, mergeOptimizations"
description="generate the distribution" >
<!-- Create the distribution directory -->
<jar jarfile="${jarfile}" basedir="${build}"/>
</target>
<!-- ================================================== -->
<target name="clean" description="Delete class files and docs dir.">
<delete file="${jarfile}"/>
<delete dir="${build}"/>
<delete dir="${build-db4oj}"/>
<delete dir="${build-db4ojdk1.2}"/>
<delete dir="${build-db4ojdk5}"/>
</target>
</project>