1
+ <!--
2
+ ~ build_tempest.xml
3
+ -->
4
+
5
+ <project name =" TempEst" default =" build" basedir =" ." >
6
+ <description >
7
+ Build file for TempEst release versions.
8
+ </description >
9
+
10
+ <property name =" JDK_SOURCE_VERSION" value =" 1.8" />
11
+ <property name =" JDK_TARGET_VERSION" value =" 1.8" />
12
+
13
+ <!-- set global properties for this build -->
14
+ <property name =" src" location =" src" />
15
+ <property name =" build" location =" build" />
16
+ <property name =" lib" location =" lib" />
17
+ <property name =" dist" location =" dist" />
18
+
19
+ <path id =" classpath" >
20
+ <fileset dir =" ${ lib } " includes =" **/*.jar" />
21
+ </path >
22
+
23
+ <property environment =" env" />
24
+
25
+ <target name =" init" >
26
+ <!-- Create the time stamp -->
27
+ <echo message =" ${ ant.project.name } : ${ ant.file } " />
28
+ <tstamp />
29
+ <!-- Create the build directory structure used by compile -->
30
+ <mkdir dir =" ${ build } " />
31
+ <mkdir dir =" ${ dist } " />
32
+ </target >
33
+
34
+ <target name =" clean" >
35
+ <delete dir =" ${ build } " />
36
+ </target >
37
+
38
+ <target name =" compile" depends =" init" >
39
+ <!-- Compile the java code from ${src} into ${build} -->
40
+ <javac source =" ${ JDK_SOURCE_VERSION } " target =" ${ JDK_TARGET_VERSION } " srcdir =" ${ src } " destdir =" ${ build } " classpathref =" classpath" >
41
+ <include name =" dr/app/tempest/**" />
42
+ <include name =" dr/app/beauti/**" />
43
+ <include name =" dr/app/tools/**" />
44
+ <include name =" dr/app/util/**" />
45
+ <include name =" dr/evolution/io/**" />
46
+ <include name =" dr/evolution/datatype/**" />
47
+ <include name =" dr/evolution/sequence/**" />
48
+ <include name =" dr/evolution/alignment/**" />
49
+ <include name =" dr/evolution/tree/**" />
50
+ <include name =" dr/evolution/util/**" />
51
+ <include name =" dr/app/gui/**" />
52
+ <include name =" dr/matrix/**" />
53
+ <include name =" dr/stats/**" />
54
+ <include name =" dr/math/**" />
55
+ <include name =" dr/util/**" />
56
+ <include name =" org/virion/jam/**" />
57
+ </javac >
58
+ </target >
59
+
60
+ <target name =" dist" depends =" compile" description =" generate the jar file" >
61
+ <!-- Create the distribution directory -->
62
+ <mkdir dir =" ${ dist } " />
63
+
64
+ <!-- Put everything in ${build} into the treestat.jar file -->
65
+ <jar jarfile =" ${ dist } /tempest.jar" >
66
+ <manifest >
67
+ <attribute name =" Built-By" value =" ${ user.name } " />
68
+ <attribute name =" Main-Class" value =" dr.app.tempest.TempEstApp" />
69
+ </manifest >
70
+ <fileset dir =" ${ build } " >
71
+ <include name =" dr/app/tempest/**/*.class" />
72
+ <include name =" dr/app/beauti/**/*.class" />
73
+ <include name =" dr/app/tools/**/*.class" />
74
+ <include name =" dr/app/util/**/*.class" />
75
+ <include name =" dr/evolution/io/**/*.class" />
76
+ <include name =" dr/evolution/datatype/**/*.class" />
77
+ <include name =" dr/evolution/sequence/**/*.class" />
78
+ <include name =" dr/evolution/alignment/**/*.class" />
79
+ <include name =" dr/evolution/tree/**/*.class" />
80
+ <include name =" dr/evolution/util/**/*.class" />
81
+ <include name =" dr/app/gui/**/*.class" />
82
+ <include name =" dr/matrix/**/*.class" />
83
+ <include name =" dr/stats/**/*.class" />
84
+ <include name =" dr/math/**/*.class" />
85
+ <include name =" dr/util/**/*.class" />
86
+ </fileset >
87
+ <fileset dir =" " >
88
+ <include name =" images/*.png" />
89
+ </fileset >
90
+ <fileset dir =" ${ src } " >
91
+ <include name =" dr/app/tempest/**/*.png" />
92
+ <include name =" dr/app/gui/**/*.png" />
93
+ <include name =" org/virion/jam/**/*.png" />
94
+ <include name =" dr/gui/table/**/*.png" />
95
+ </fileset >
96
+ <zipgroupfileset dir =" ${ lib } " includes =" **/jebl.jar" />
97
+ <zipgroupfileset dir =" ${ lib } " includes =" **/jam.jar" />
98
+ <zipgroupfileset dir =" ${ lib } " includes =" **/figtreepanel.jar" />
99
+ </jar >
100
+ </target >
101
+
102
+ <property name =" version" value =" 1.5.3" />
103
+ <property name =" packaging_tools" value =" packaging_tools" />
104
+ <property name =" release_dir" value =" release_tempest" />
105
+ <property name =" name" value =" TempEst" />
106
+
107
+ <property name =" common_dir" value =" ${ release_dir } /common" />
108
+
109
+ <property name =" Mac_dir" value =" ${ release_dir } /Mac" />
110
+ <property name =" Linux_dir" value =" ${ release_dir } /Linux" />
111
+ <property name =" Windows_dir" value =" ${ release_dir } /Windows" />
112
+
113
+ <property name =" Mac_package_dir" value =" ${ Mac_dir } /${ name } v${ version } " />
114
+ <property name =" Linux_package_dir" value =" ${ Linux_dir } /${ name } _v${ version } " />
115
+ <property name =" Windows_package_dir" value =" ${ Windows_dir } /${ name } v${ version } " />
116
+
117
+ <!-- Need to either install Launch4j under {BEAST workspace}/${release}
118
+ or install it in the default directory and change the location of launch4j.dir -->
119
+ <target name =" windows" depends =" dist" description =" release Windows version of TempEst" >
120
+
121
+ <delete dir =" ${ Windows_package_dir } " />
122
+ <!-- Create the release directory -->
123
+ <mkdir dir =" ${ Windows_package_dir } " />
124
+
125
+ <property name =" launch4j.dir" location =" ${ Windows_dir } /launch4j" />
126
+ <taskdef name =" launch4j" classname =" net.sf.launch4j.ant.Launch4jTask"
127
+ classpath =" ${ launch4j.dir } /launch4j.jar :${ launch4j.dir } /lib/xstream.jar" />
128
+
129
+ <copy file =" ${ dist } /tempest.jar" todir =" ${ Windows_package_dir } /lib" />
130
+
131
+ <!--
132
+ <copy todir="${Windows_package_dir}/lib">
133
+ <fileset dir="${Windows_dir}/lib"/>
134
+ </copy>
135
+ -->
136
+
137
+ <copy file =" ${ common_dir } /README.txt" todir =" ${ Windows_package_dir } " />
138
+
139
+ <launch4j configFile =" ${ Windows_dir } /tempest_launch4j.xml"
140
+ jar =" ${ dist } /tempest.jar"
141
+ outfile =" ${ Windows_package_dir } /${ name } v${ version } .exe"
142
+ fileVersion =" ${ version } .0"
143
+ txtFileVersion =" ${ version } "
144
+ productVersion =" ${ version } .0"
145
+ txtProductVersion =" ${ version } " />
146
+
147
+ <zip destfile =" ${ release_dir } /${ name } v${ version } .zip" >
148
+ <zipfileset dir =" ${ Windows_package_dir } " prefix =" ${ name } v${ version } " />
149
+ </zip >
150
+
151
+ <echo message =" Windows version release is finished." />
152
+ </target >
153
+
154
+ <target name =" linux" depends =" dist" description =" release Linux/Unix version of TempEst" >
155
+ <delete dir =" ${ Linux_package_dir } " />
156
+ <!-- Create the release directory -->
157
+ <mkdir dir =" ${ Linux_package_dir } " />
158
+
159
+ <copy todir =" ${ Linux_package_dir } /bin" >
160
+ <fileset dir =" ${ Linux_dir } /scripts" />
161
+ </copy >
162
+
163
+ <chmod dir =" ${ Linux_package_dir } /bin" perm =" 755" includes =" **/**" />
164
+
165
+ <copy file =" ${ Linux_dir } /icons/tempest.png" todir =" ${ Linux_package_dir } /images" />
166
+ <copy file =" ${ dist } /tempest.jar" todir =" ${ Linux_package_dir } /lib" />
167
+
168
+ <!-- no libraries to copy...
169
+ <copy todir="${Linux_package_dir}/lib">
170
+ <fileset dir="${Linux_dir}/lib"/>
171
+ </copy>
172
+ -->
173
+
174
+ <copy file =" ${ common_dir } /README.txt" todir =" ${ Linux_package_dir } " />
175
+
176
+ <tar destfile =" ${ release_dir } /${ name } _v${ version } .tgz" compression =" gzip" >
177
+ <tarfileset dir =" ${ Linux_package_dir } " prefix =" ${ name } _v${ version } " />
178
+ </tar >
179
+
180
+ <echo message =" Linux/Unix version release is finished." />
181
+ </target >
182
+
183
+ <!-- this will only work on Andrew's computer -->
184
+ <property name =" AppleSigner" value =" Developer ID Application: Andrew Rambaut (9E4WXAQ6SE)" />
185
+
186
+ <target name =" mac" depends =" dist" description =" release Mac version of Tempest" >
187
+ <delete dir =" ${ Mac_package_dir } " />
188
+ <!-- Create the release directory -->
189
+ <mkdir dir =" ${ Mac_package_dir } " />
190
+
191
+ <copy file =" ${ common_dir } /README.txt" todir =" ${ Mac_package_dir } " />
192
+
193
+ <taskdef name =" jarbundler" classname =" com.ultramixer.jarbundler.JarBundler" classpath =" ${ packaging_tools } /mac/jarbundler-core-3.3.0.jar" />
194
+
195
+ <!-- create a jar bundle for the mac -->
196
+ <jarbundler dir =" ${ Mac_package_dir } "
197
+ name =" ${ name } v${ version } "
198
+ mainclass =" dr.app.tempest.TempEstApp"
199
+ stubfile =" ${ packaging_tools } /mac/universalJavaApplicationStub"
200
+ useJavaXKey =" true"
201
+ icon =" ${ Mac_dir } /icons/TempEst.icns"
202
+ jvmversion =" 1.6+"
203
+ arguments =" "
204
+ vmoptions =" -Xmx1024M"
205
+ version =" ${ version } "
206
+ highresolutioncapable =" true"
207
+ copyright =" ${ name } v${ version } , Copyright 2006-2018, Andrew Rambaut"
208
+ bundleid =" tempest" >
209
+ <javaproperty name =" apple.laf.useScreenMenuBar" value =" true" />
210
+ <jarfileset dir =" ${ dist } " >
211
+ <include name =" **/tempest.jar" />
212
+ </jarfileset >
213
+ </jarbundler >
214
+
215
+ <!-- code signing -->
216
+ <exec executable =" codesign" >
217
+ <arg value =" --deep" />
218
+ <arg value =" -s" />
219
+ <arg value =" ${ AppleSigner } " />
220
+ <arg value =" -v" />
221
+ <arg value =" ${ Mac_package_dir } /${ name } v${ version } .app" />
222
+ </exec >
223
+
224
+ <echo message =" Building disk image." />
225
+
226
+ <!-- create disk image -->
227
+ <exec executable =" /usr/bin/hdiutil" >
228
+ <arg value =" create" />
229
+ <arg value =" -ov" />
230
+ <arg value =" -srcfolder" />
231
+ <arg value =" ${ Mac_package_dir } " />
232
+ <arg value =" -volname" />
233
+ <arg value =" ${ name } v${ version } " />
234
+ <arg value =" -imagekey" />
235
+ <arg value =" zlib-level=6" />
236
+ <arg value =" ${ release_dir } /${ name } v${ version } .dmg" />
237
+ </exec >
238
+
239
+ <exec executable =" codesign" >
240
+ <arg value =" -s" />
241
+ <arg value =" ${ AppleSigner } " />
242
+ <arg value =" -v" />
243
+ <arg value =" ${ release_dir } /${ name } v${ version } .dmg" />
244
+ </exec >
245
+
246
+ <echo message =" Mac version release is finished." />
247
+ </target >
248
+
249
+
250
+ <target name =" build" depends =" mac, windows, linux" description =" build all the executables" />
251
+ </project >
0 commit comments