-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.xml
133 lines (115 loc) · 5.57 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="HyperGraphDB Core" default="all">
<description>HyperGraphDB Core Build File</description>
<property name="version" value="1.1"/>
<property name="distfilename" value="hypergraphdb-${version}"/>
<property name="build" value="target/build"/>
<property name="dist" value="target/dist"/>
<property name="javadoc" value="target/javadoc"/>
<property name="jars" value="target/jars"/>
<property name="debug" value="on"/>
<property name="jar-name" value="hypergraphdb.jar"/>
<property name="peer-jar-name" value="hgpeer.jar"/>
<property name="full-jar-name" value="hgdbfull.jar"/>
<property name="core-path" value="src/main/java"/>
<property name="peer-path" value="org/hypergraphdb/peer"/>
<!-- classpath for compiling-->
<path id="core-classpath">
<fileset dir="jars">
<include name="**/*.jar" />
<exclude name="**/jxta*.jar"/>
</fileset>
<pathelement path="${java.class.path}" />
</path>
<path id="all-classpath">
<fileset dir="jars">
<include name="**/*.jar" />
</fileset>
<pathelement path="${java.class.path}" />
</path>
<target name="init">
<mkdir dir="${build}"/>
<mkdir dir="${javadoc}"/>
<mkdir dir="${dist}"/>
</target>
<target name="core-compile" depends="init" description="Compile the HyperGraphDB Core Sources">
<javac classpathref="core-classpath" debug="${debug}" destdir="${build}" srcdir="${core-path}">
<exclude name="${peer-path}/**"/>
</javac>
<copy todir="${build}/">
<fileset dir="src/main/config">
<include name="**" />
</fileset>
</copy>
</target>
<target name="peer-compile" depends="init" description="Compile the peer-to-peer code">
<javac source="1.5" classpathref="all-classpath" debug="${debug}" destdir="${build}" srcdir="${core-path}/${peer-path}">
</javac>
</target>
<target name="core-jar" depends="core-compile" description="Create HyperGraphDB Core Jar file.">
<jar basedir="${build}" jarfile="${jars}/${jar-name}">
<exclude name="**/*.jar" />
<exclude name="**/*.bak" />
<exclude name="${peer-path}/**"/>
</jar>
</target>
<target name="peer-jar" depends="peer-compile" description="Create HGDB peer jar file.">
<jar basedir="${build}" jarfile="${jars}/${peer-jar-name}">
<exclude name="**/*.jar" />
<exclude name="**/*.bak" />
<include name="${peer-path}/**"/>
</jar>
</target>
<target name="full-jar" depends="core-compile, peer-compile" description="Create HGDB Full jar file (both core and peer).">
<jar basedir="${build}" jarfile="${jars}/${full-jar-name}">
<exclude name="**/*.jar" />
<exclude name="**/*.bak" />
</jar>
</target>
<target name="docgen" depends="init" description="Generate JavaDocs for HGDB core, including the P2P module">
<javadoc sourcepath="${core-path}" destdir="${javadoc}" classpathref="core-classpath"/>
</target>
<target name="dist-common" depends="full-jar, peer-jar, core-jar, docgen" description="Create common files for all platform distributions.">
<delete dir="${distfilename}"/>
<mkdir dir="${distfilename}"/>
<copydir src="${javadoc}" dest="${distfilename}/javadoc"/>
<copydir src="src" dest="${distfilename}/src" excludes="**/.svn"/>
<copydir src="jars" dest="${distfilename}/jars" excludes="**/.svn"/>
<copydir src="ThirdPartyLicensing" dest="${distfilename}/ThirdPartyLicensing" excludes="**/.svn"/>
<copy file="LicensingInformation" todir="${distfilename}"/>
<copy file="readme.html" todir="${distfilename}"/>
<copy file="build.xml" todir="${distfilename}"/>
<copy file="${jars}/${jar-name}" todir="${distfilename}"/>
<copy file="${jars}/${peer-jar-name}" todir="${distfilename}"/>
<copy file="${jars}/${full-jar-name}" todir="${distfilename}"/>
</target>
<target name="dist-win" depends="dist-common" description="Create MS Windows distribution.">
<delete dir="${distfilename}/native"/>
<mkdir dir="${distfilename}/native"/>
<copydir src="native/windows" dest="${distfilename}/native"/>
<zip destfile="${dist}/${distfilename}.zip" basedir="." includes="${distfilename}/**"/>
</target>
<target name="dist-lin" depends="dist-common" description="Create Linux distribution">
<delete dir="${distfilename}/native"/>
<mkdir dir="${distfilename}/native"/>
<copydir src="native/linux" dest="${distfilename}/native"/>
<tar destfile="${dist}/${distfilename}.tar.gz" compression="gzip" basedir="." includes="${distfilename}/**"/>
</target>
<target name="dist-mac" depends="dist-common" description="Create MacOS distribution">
<delete dir="${distfilename}/native"/>
<mkdir dir="${distfilename}/native"/>
<copydir src="native/macos" dest="${distfilename}/native"/>
<tar destfile="${dist}/${distfilename}-macos.tar.gz" compression="gzip" basedir="." includes="${distfilename}/**"/>
</target>
<target name="all" depends="core-jar, peer-jar, full-jar, dist-win, dist-lin, dist-mac"/>
<target description="clean up" name="clean">
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}" />
<delete dir="${dist}"/>
<delete dir="${distfilename}"/>
<delete dir="${javadoc}"/>
<delete file="${jars}/${jar-name}"/>
<delete file="${jars}/${peer-jar-name}"/>
<delete file="${jars}/${full-jar-name}"/>
</target>
</project>