-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathbuild.xml
101 lines (91 loc) · 4.65 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
<?xml version="1.0"?>
<project name="CPILint" default="compile" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="app.name" value="cpilint"/>
<property name="version" value="1.0.5"/>
<property name="app.name.versioned" value="${app.name}-${version}"/>
<property name="jar" value="${app.name.versioned}.jar"/>
<property name="source.dir" value="src"/>
<property name="dependencies.dir" value="lib"/>
<property name="3rd.party.licenses.dir" value="3rd-party-licenses"/>
<property name="compile.dependencies.dir" value="${dependencies.dir}/compile"/>
<property name="runtime.dependencies.dir" value="${dependencies.dir}/runtime"/>
<property name="build.dir" value="build"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="release.dir" value="release"/>
<property name="release.archive" value="${app.name.versioned}.zip"/>
<property name="source.archive" value="${app.name.versioned}-src.zip"/>
<property name="temp.dir" value="temp"/>
<property name="release.root" value="${app.name.versioned}"/>
<property name="scripts.dir" value="scripts"/>
<property name="logback.dir" value="logback"/>
<property name="graphics.dir" value="graphics"/>
<property name="resources.dir" value="resources"/>
<property name="dist.files.dir" value="dist-files"/>
<property name="xerces.dir" value="${dist.files.dir}/xerces-runtime-jars"/>
<property name="samples.dir" value="${dist.files.dir}/samples"/>
<path id="classpath.build">
<fileset dir="${compile.dependencies.dir}" includes="*.jar"/>
</path>
<target name="prepare" description="Creates all directories required by the build">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
<mkdir dir="${release.dir}"/>
</target>
<target name="clean" description="Removes all files and directories generated by Ant">
<delete dir="${build.dir}"/>
<delete dir="${release.dir}"/>
<delete dir="${temp.dir}"/>
<delete dir="${dependencies.dir}"/>
</target>
<target name="dependencies" description="Retrieves dependencies with Ivy">
<ivy:retrieve conf="compile" pattern="${compile.dependencies.dir}/[artifact]-[revision].[ext]"/>
<ivy:retrieve conf="runtime" pattern="${runtime.dependencies.dir}/[artifact]-[revision].[ext]"/>
</target>
<target name="compile" depends="prepare,dependencies" description="Compiles all source files">
<javac srcdir="${source.dir}" destdir="${build.classes}" release="17" includeantruntime="false">
<classpath refid="classpath.build"/>
</javac>
</target>
<target name="jar" depends="compile" description="Generates a JAR archive containing all classes">
<jar jarfile="${build.lib}/${jar}">
<fileset dir="${build.classes}" includes="**/*.class"/>
<fileset dir="." includes="${resources.dir}/**"/>
</jar>
</target>
<target name="release" depends="jar" description="Generates a release archive for distribution">
<!-- Create temporary directory. -->
<mkdir dir="${temp.dir}"/>
<!-- Create an archive containing the source. -->
<zip destfile="${temp.dir}/${source.archive}">
<fileset dir="." includes="${3rd.party.licenses.dir}/*"/>
<fileset dir="." includes="${dist.files.dir}/*"/>
<fileset dir="." includes="${graphics.dir}/*"/>
<fileset dir="." includes="${logback.dir}/*"/>
<fileset dir="." includes="${resources.dir}/**"/>
<fileset dir="." includes="${scripts.dir}/*"/>
<fileset dir="." includes="${source.dir}/**"/>
<fileset dir="." includes="BUILDING.md"/>
<fileset dir="." includes="LICENSE.txt"/>
<fileset dir="." includes="README.md"/>
<fileset dir="." includes="build.xml"/>
<fileset dir="." includes="ivy.xml"/>
</zip>
<!-- Create a release archive. -->
<zip destfile="${release.dir}/${release.archive}">
<zipfileset dir="${build.lib}" includes="${jar}" prefix="${release.root}/lib"/>
<zipfileset dir="${runtime.dependencies.dir}" includes="*.jar" prefix="${release.root}/lib"/>
<zipfileset dir="${xerces.dir}" includes="*.jar" prefix="${release.root}/lib"/>
<zipfileset dir="${temp.dir}" includes="${source.archive}" prefix="${release.root}/source"/>
<zipfileset dir="${scripts.dir}" prefix="${release.root}/bin"/>
<zipfileset dir="." includes="LICENSE.txt" prefix="${release.root}/"/>
<zipfileset dir="${logback.dir}" prefix="${release.root}/logback"/>
<zipfileset dir="${3rd.party.licenses.dir}" prefix="${release.root}/3rd-party-licenses"/>
<zipfileset dir="${dist.files.dir}" includes="README.txt" prefix="${release.root}/"/>
<zipfileset dir="${samples.dir}" prefix="${release.root}/samples"/>
</zip>
<!-- Clean up. -->
<delete dir="${temp.dir}"/>
</target>
</project>