source: main/trunk/release-kits/shared/core/ant-installer/build.xml@ 35634

Last change on this file since 35634 was 35634, checked in by davidb, 3 years ago

To support using a newer JDK (such as OpenJDK11) with the Release Kit code base to generate an installer that operates with the bundled JDK8 then we need to be more careful over the .class files that are compiled up. This is what this set of introduced mods does

File size: 5.9 KB
Line 
1<?xml version="1.0"?>
2<!--
3 This is a normal Ant build file to build the release for sourceforge
4
5 Subsequently adapted to add in the 'compile.javac.flags' set in
6 the parent Greenstone Release Kit directory above to control
7 the target version of class files produced
8 -->
9
10<project name="Installation Build" default="build">
11
12 <!-- Project properties -->
13 <property name="prepareDir" value="artifacts/prepare"/>
14 <property name="antlib" value="antlib"/>
15
16
17 <!-- Classpaths - start -->
18 <!-- Classpaths for compilation - start -->
19
20 <path id="project.cp">
21 <fileset dir="${antlib}" includes="ant.jar,ant-launcher.jar"/>
22 </path>
23 <path id="project.ext.cp">
24 <fileset dir="lib">
25 <include name="ant-installer.jar"/>
26 </fileset>
27 <fileset dir="${antlib}" includes="ant.jar,ant-launcher.jar"/>
28 </path>
29 <!-- Classpaths for compilation - end -->
30
31 <path id="taskdef.cp">
32 <fileset dir="./lib">
33 <include name="ant-installer-ext.jar"/>
34 <include name="ant-installer.jar"/>
35 </fileset>
36 </path>
37 <!-- Classpaths - end -->
38
39
40 <!-- Task definitions - start -->
41 <!-- AntInstaller installer task definition.
42 Defined within target as it depends upon files that aren't
43 available at the start of a clean build -->
44 <target name="_set-installer-taskdef" unless="installer.taskdef.defined">
45 <taskdef
46 name="installer"
47 classname="org.tp23.antinstaller.taskdefs.Installer"
48 classpathref="taskdef.cp"/>
49 <property name="installer.taskdef.defined" value="true"/>
50 </target>
51 <!-- Task definitions - end -->
52
53
54 <!-- =============================== -->
55 <!-- ==== Public Runnable Targets == -->
56 <!-- =============================== -->
57
58 <target name="clean-build" depends="clean, _build-ai-jars, clean-demo, _build-demo">
59 <!-- this build is pretty much everything other than the installers -->
60 </target>
61
62 <target name="build" depends="_build-ai-jars, _build-demo">
63 <!-- this build should be enough to run the unittests without having to build a release package -->
64 </target>
65
66 <target name="clean" description="Clean out compiled and generated files">
67 <echo message="*** *** Cleaning artifacts *** *** "/>
68 <echo message="*** ***"/>
69 <delete dir="${prepareDir}"/>
70 <delete file="./lib/ant-installer.jar"/>
71 <delete file="./lib/ant-installer-ext.jar"/>
72 </target>
73
74 <target name="clean-demo" description="Clean out demo files">
75 <ant dir="demo" antfile="build-demo.xml" target="clean">
76 <property name="${installDir}" value="demo"/>
77 </ant>
78 </target>
79
80
81 <!-- =============================== -->
82 <!-- ======= Internal Targets ====== -->
83 <!-- =============================== -->
84
85 <!--
86 tests that the following has been run locally
87 This does not need to be run repeatedly but unittests depend on it
88 # ant -buildfile demo/build-demo.xml
89 -->
90 <target name="_check-demo">
91 <condition property="installpack.missing">
92 <not>
93 <available file="demo/artifacts/installpack.zip" type="file"/>
94 </not>
95 </condition>
96 </target>
97
98 <target name="_build-demo" if="installpack.missing" depends="_check-demo">
99 <echo message="requires demo build: ${installpack.missing}"/>
100 <ant dir="demo" antfile="build-demo.xml" target="selfextract">
101 <property name="${installDir}" value="demo"/>
102 </ant>
103 </target>
104
105
106 <target name="_build-ai-jars" depends="_ant-installer.jar, _ant-installer-ext.jar">
107 <!-- AntInstaller JARs are built in ./lib-->
108 <!-- (checked-in) JARs should not be used -->
109 </target>
110
111 <target name="_ant-installer.jar">
112 <echo message="*** *** Building ant-installer.jar *** *** "/>
113 <echo message="*** ***"/>
114 <echo message="Initing the build directory - ${prepareDir}"/>
115 <mkdir dir="${prepareDir}/classes"/>
116
117 <echo message="*** Building ant-installer.jar ***"/>
118
119 <mkdir dir="./lib"/>
120
121 <javac includeantruntime="false"
122 srcdir="src"
123 destdir="${prepareDir}/classes"
124 classpathref="project.cp"
125 debug="true">
126 <compilerarg line="${compile.javac.flags}"/>
127 </javac>
128
129 <jar file="./lib/ant-installer.jar" whenempty="fail">
130 <fileset dir="./src/resources">
131 <include name="LICENSE-ant-install.txt"/>
132 </fileset>
133 <fileset dir="${prepareDir}/classes"/>
134 <fileset dir="./src">
135 <include name="**/*.dtd"/>
136 <include name="**/*.properties"/>
137 <include name="**/*.fconfig"/>
138 <include name="resources/extract-image.png"/>
139 <include name="resources/gkmain_inv.png"/>
140 <include name="resources/antbar.png"/>
141 </fileset>
142 <manifest>
143 <attribute name="AntInstaller-Version" value="${ant.install.version}"/>
144 </manifest>
145 </jar>
146 </target>
147
148 <target name="_ant-installer-ext.jar">
149 <echo message="*** *** Building ant-installer-ext.jar *** *** "/>
150 <echo message="*** ***"/>
151 <mkdir dir="${prepareDir}/classes_ext"/>
152
153 <javac includeantruntime="false"
154 srcdir="src_ext"
155 destdir="${prepareDir}/classes_ext"
156 classpathref="project.ext.cp"
157 debug="true">
158 <compilerarg line="${compile.javac.flags}"/>
159 </javac>
160
161 <jar file="./lib/ant-installer-ext.jar" whenempty="fail">
162 <fileset dir="./src/resources">
163 <include name="LICENSE-ant-install.txt"/>
164 </fileset>
165 <fileset dir="${prepareDir}/classes_ext"/>
166 <manifest>
167 <attribute name="AntInstaller-Version" value="${ant.install.version}"/>
168 </manifest>
169 </jar>
170 </target>
171
172 <target name="setEn"></target>
173 <target name="setFr"></target>
174 <target name="setEs"></target>
175 <target name="setRu"></target>
176
177
178</project>
Note: See TracBrowser for help on using the repository browser.