4
<project name="TripleA" basedir="." default="compile">
6
<property file=".ant.properties" />
8
<!-- this path does not have junit on it -->
10
<pathelement path="lib\standalone-compiler.jar" />
11
<pathelement path="lib\AppleJavaExtensions.jar" />
12
<pathelement path="lib\commons-httpclient-3.0.1.jar" />
13
<pathelement path="lib\commons-logging-1.1.jar" />
14
<pathelement path="lib\commons-codec-1.3.jar" />
15
<pathelement path="lib\substance_5.3.jar" />
16
<pathelement path="${classpath}" />
17
<pathelement path="classes/" />
21
<existing refid="full.path"></existing>
22
<pathelement path="classes/" />
23
<pathelement path="lib\junit.jar" />
34
<target name="all" depends="init,clean,compile,test,zip, zipSource">
39
<target name="clean" depends="init" description="Remove all release, class and saved game files">
40
<delete dir="release" />
41
<delete dir="classes" />
43
<delete dir="testclasses" />
44
<delete dir="savedGames" />
48
<target name="compile" depends="init" description="Compile the source files and copy over the resource files">
50
<!-- we require jdk 1.5 or greater -->
51
<fail message="jdk 1.5 or greater required, you are currently using: ${ant.java.version}">
54
<equals arg1="1.1" arg2="${ant.java.version}" />
55
<equals arg1="1.2" arg2="${ant.java.version}" />
56
<equals arg1="1.3" arg2="${ant.java.version}" />
57
<equals arg1="1.4" arg2="${ant.java.version}" />
62
<!-- we only need this for deployment -->
63
<delete file="bin/triplea.jar" />
65
<mkdir dir="classes" />
66
<mkdir dir="testclasses" />
67
<copy todir="classes">
69
<include name="**/*.dtd" />
70
<include name="**/*.gif" />
71
<include name="**/*.png" />
72
<include name="**/*.txt" />
73
<include name="**/*.jpeg" />
74
<include name="**/*.xml" />
75
<include name="**/*.xslt" />
76
<include name="**/*.wav" />
77
<include name="**/*.properties" />
81
<javac srcdir="src/" destdir="classes/" debug="true" deprecation="true" classpathref="full.path" target="1.5" encoding="utf8" />
83
<!-- to check the correct java version, we need to compile the startup class so that it will run on older vms -->
84
<!-- delete the startup class, and recompile it -->
86
<fileset dir="classes" includes="**/GameRunner.class">
90
<javac srcdir="src/" destdir="classes/" debug="true" deprecation="true" classpathref="full.path" target="1.2" source="1.2" />
92
<!-- compile test classes -->
93
<javac srcdir="test/" destdir="testclasses/" debug="true" deprecation="true" classpathref="test.path" target="1.5" />
97
<target name="run" depends="compile" description="Run Triplea">
98
<java classpathref="full.path" spawn="true" classname="games.strategy.engine.framework.GameRunner" fork="true"/>
102
<!-- compileClean -->
103
<target name="compileClean" depends="clean,compile,zip" description="Clean then compile" />
105
<target name="macRelease" depends="init,clean,compile,zip" description="create a mac os x application">
107
<property name="dmg.file" value="release/triplea_${triplea.version}_mac.dmg"></property>
108
<property name="app.file" value="release/Triplea.app"></property>
111
<exec executable="hdiutil">
112
<arg line="detach /Volumes/TripleA" />
115
<mkdir dir="${app.file}" />
116
<mkdir dir="${app.file}/Contents" />
117
<mkdir dir="${app.file}/Contents/MacOS" />
118
<mkdir dir="${app.file}/Contents/Resources/" />
119
<mkdir dir="${app.file}/Contents/Resources/Java" />
121
<copy file="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub" todir="${app.file}/Contents/MacOS/" />
123
<exec executable="chmod">
124
<arg line="755 ${app.file}/Contents/MacOS/JavaApplicationStub" />
127
<copy file="bin/triplea.jar" todir="${app.file}/Contents/Resources/Java/"></copy>
129
<copy file="Info.plist" todir="${app.file}/Contents/" />
131
<echo message="APPL????" file="${app.file}/Contents/PkgInfo" />
135
<copy file="icons/icon.icns" todir="${app.file}/Contents/Resources/" />
137
<exec executable="cp">
138
<arg line="-r icons ${app.file}/Contents/Resources/" />
141
<exec executable="cp">
142
<arg line="-r images ${app.file}/Contents/Resources/" />
145
<exec executable="cp">
146
<arg line="-r license ${app.file}/Contents/Resources/" />
149
<exec executable="cp">
150
<arg line="-r dice_servers ${app.file}/Contents/Resources/" />
153
<exec executable="cp">
154
<arg line="-r maps ${app.file}/Contents/Resources/" />
157
<exec executable="/Developer/Tools/SetFile">
158
<arg line="-a B ${app.file}" />
161
<unzip src="icons/Icon.zip" dest="${app.file}/" encoding="MacRoman" />
163
<echo message="making dmg"/>
164
<exec executable="hdiutil">
165
<arg line="create -size 200m -fs HFS+ -volname TripleA ${dmg.file}" />
169
<exec executable="hdiutil">
170
<arg line="attach ${dmg.file}" />
173
<exec executable="cp">
174
<arg line="-r ${app.file} /Volumes/TripleA/" />
177
<exec executable="cp">
178
<arg line="-r doc /Volumes/TripleA/" />
181
<exec executable="cp">
182
<arg line="readme.html /Volumes/TripleA/" />
185
<exec executable="cp">
186
<arg line="license/gpl.txt /Volumes/TripleA/COPYING" />
189
<exec executable="hdiutil">
190
<arg line="detach /Volumes/TripleA" />
193
<!-- compress the dmg file -->
194
<move file="${dmg.file}" tofile="temp.dmg"> </move>
195
<exec executable="hdiutil">
196
<arg line="convert temp.dmg -o ${dmg.file} -format UDBZ "/>
198
<delete file="temp.dmg"></delete>
202
<target name="macServerApp" depends="init,clean,compile,zip" description="create a mac os x application">
204
<property name="dmg.file" value="release/triplea_${triplea.version}_server.dmg"></property>
205
<property name="app.file" value="release/TripleaServer.app"></property>
208
<exec executable="hdiutil">
209
<arg line="detach /Volumes/TripleA" />
212
<mkdir dir="${app.file}" />
213
<mkdir dir="${app.file}/Contents" />
214
<mkdir dir="${app.file}/Contents/MacOS" />
215
<mkdir dir="${app.file}/Contents/Resources/" />
216
<mkdir dir="${app.file}/Contents/Resources/Java" />
218
<copy file="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub" todir="${app.file}/Contents/MacOS/" />
220
<exec executable="chmod">
221
<arg line="755 ${app.file}/Contents/MacOS/JavaApplicationStub" />
224
<copy file="bin/triplea.jar" todir="${app.file}/Contents/Resources/Java/"></copy>
225
<copy file="lib/derby_10_1_2.jar" todir="${app.file}/Contents/Resources/Java/"></copy>
228
<copy file="ServerInfo.plist" tofile="${app.file}/Contents/Info.plist" />
230
<echo message="APPL????" file="${app.file}/Contents/PkgInfo" />
232
<copy file="icons/icon.icns" todir="${app.file}/Contents/Resources/" />
235
<exec executable="cp">
236
<arg line="-r icons ${app.file}/Contents/Resources/" />
239
<exec executable="/Developer/Tools/SetFile">
240
<arg line="-a B ${app.file}" />
243
<unzip src="icons/Icon.zip" dest="${app.file}/" encoding="MacRoman" />
245
<echo message="making dmg"/>
246
<exec executable="hdiutil">
247
<arg line="create -size 100m -fs HFS+ -volname TripleA ${dmg.file}" />
251
<exec executable="hdiutil">
252
<arg line="attach ${dmg.file}" />
255
<exec executable="cp">
256
<arg line="-r ${app.file} /Volumes/TripleA/" />
259
<exec executable="cp">
260
<arg line="-r doc /Volumes/TripleA/" />
263
<exec executable="cp">
264
<arg line="readme.html /Volumes/TripleA/" />
267
<exec executable="cp">
268
<arg line="license/gpl.txt /Volumes/TripleA/COPYING" />
271
<exec executable="hdiutil">
272
<arg line="detach /Volumes/TripleA" />
275
<!-- compress the dmg file -->
276
<move file="${dmg.file}" tofile="temp.dmg"> </move>
277
<exec executable="hdiutil">
278
<arg line="convert temp.dmg -o ${dmg.file} -format UDBZ "/>
280
<delete file="temp.dmg"></delete>
286
<target name="zip" depends="init,compile" description="create a zip file for end users">
287
<mkdir dir="release" />
290
<delete file="bin/triplea.jar" />
292
<!-- we want to merge all the jar files we use
293
into the triplea.jar file, so unzip everything into
295
<delete dir="deleteme"></delete>
296
<mkdir dir="deleteme"/>
297
<unjar dest="deleteme" overwrite="yes">
298
<fileset dir="lib" includes="*.jar" excludes="junit.jar,derby*"> </fileset>
300
<delete dir="deleteme/META-INF"/>
301
<copy todir="deleteme">
302
<fileset dir="classes" includes="**"></fileset>
305
<jar destfile="bin/triplea.jar" basedir="deleteme">
307
<attribute name="Main-Class" value="games.strategy.engine.framework.GameRunner" />
310
<delete dir="deleteme"></delete>
312
<zip zipfile="release/triplea_${triplea.version}_all_platforms.zip" compress="true">
314
<!--zipfileset dir="lib/" prefix="triplea_${triplea.version}/lib/">
315
<include name="**/*.jar" />
316
<include name="**/*.zip" />
318
<exclude name="**/junit.jar" />
321
<zipfileset dir="doc/" prefix="triplea_${triplea.version}/doc/">
322
<include name="**/*.html" />
323
<include name="**/*.png" />
324
<include name="**/*.gif" />
325
<include name="**/*.jpg" />
328
<zipfileset dir="license/" prefix="triplea_${triplea.version}/license/">
329
<include name="gpl.txt" />
332
<zipfileset dir="dice_servers/" prefix="triplea_${triplea.version}/dice_servers/">
333
<include name="*.properties" />
336
<zipfileset dir="icons/" prefix="triplea_${triplea.version}/icons/">
337
<include name="**/*.png" />
338
<include name="**/*.bmp" />
339
<include name="**/*.ico" />
342
<zipfileset dir="images/" prefix="triplea_${triplea.version}/images/">
343
<include name="**/*.*" />
346
<zipfileset dir="maps/" prefix="triplea_${triplea.version}/maps/">
347
<include name="**/*.*" />
350
<zipfileset dir="." prefix="triplea_${triplea.version}/">
351
<include name="readme.html" />
352
<include name="*.bat" />
353
<include name="triplea.exe" />
354
<include name="changelog.txt" />
357
<zipfileset dir="." prefix="triplea_${triplea.version}/" filemode="755">
358
<include name="*.sh"/>
359
<exclude name="fix_mac_icon.sh"/>
360
<exclude name="run-server.sh"/>
363
<zipfileset dir="bin/" prefix="triplea_${triplea.version}/bin/" filemode="755">
364
<include name="**/triplea.jar" />
372
<target name="zipServer" depends="zip">
373
<zip zipfile="release/triplea_${triplea.version}_server.zip" compress="true">
375
<zipfileset dir="license/" prefix="triplea_${triplea.version}/license/">
376
<include name="gpl.txt" />
379
<zipfileset dir="lib/" prefix="triplea_${triplea.version}/lib/">
380
<include name="**/derby*.jar" />
383
<zipfileset dir="bin/" prefix="triplea_${triplea.version}/bin/">
384
<include name="**/*.jar" />
387
<zipfileset dir="." prefix="triplea_${triplea.version}" filemode="755">
388
<include name="run-server.sh"/>
394
<!-- must be done after a ant zip has been executed (we dont depend since ant zip
395
takes a while. NSIS must be installed, and makensis must be on the path
397
<target name="zipInstallerWithJava" depends="init" description="prepare_installer">
398
<delete dir="release/installer" />
399
<mkdir dir="release/installer" />
401
<unzip src="release/triplea_${triplea.version}_all_platforms.zip" dest="release/installer" />
402
<unzip src="installer/jre1.6.0_25.zip" dest="release/installer" />
403
<move toDir="release/installer/triplea_${triplea.version}/jre">
404
<fileset dir="release/installer/jre1.6.0_25" />
407
<copy file="installer/installer.nsi" toFile="release/installer/installer.nsi" />
408
<copy file="triplea_embeded_jre.exe" toFile="release/installer/triplea_${triplea.version}/triplea.exe" overwrite="true" />
409
<!-- the bat file doesnt work, since it does not point to the jre -->
410
<delete file="release/installer/triplea_${triplea.version}/triplea_windows.bat" />
413
<exec executable="makensis" dir="release/installer">
414
<arg line="/Dversion=${triplea.version} installer.nsi " />
417
<move file="release/installer/triplea_installer.exe" toFile="release/triplea_${triplea.version}_windows_installer_with_java.exe" />
421
<target name="release" depends="clean,compile,zip,zipInstaller,zipInstallerWithJava,zipSource" description="do a full windows/generic release, this must be done on a windows machine" />
424
<!-- must be done after a ant zip has been executed (we dont depend since ant zip
425
takes a while. NSIS must be installed, and makensis must be on the path
427
<target name="zipInstaller" depends="init" description="prepare_installer">
428
<delete dir="release/installer" />
429
<mkdir dir="release/installer" />
431
<unzip src="release/triplea_${triplea.version}_all_platforms.zip" dest="release/installer" />
433
<copy file="installer/installer.nsi" toFile="release/installer/installer.nsi" />
435
<exec executable="makensis" dir="release/installer">
436
<arg line="/Dversion=${triplea.version} installer.nsi " />
439
<move file="release/installer/triplea_installer.exe" toFile="release/triplea_${triplea.version}_windows_installer.exe" />
445
<target name="zipSource" depends="init" description="create a zip file for developers">
446
<mkdir dir="release" />
448
<zip zipfile="release/triplea_${triplea.version}_source_code_only.zip" compress="true">
450
<zipfileset dir="src/" prefix="triplea_${triplea.version}/src/">
451
<include name="**/*.java" />
454
<zipfileset dir="test/" prefix="triplea_${triplea.version}/test/">
455
<include name="**/*.java" />
458
<zipfileset dir="junit/" prefix="triplea_${triplea.version}/junit/">
459
<include name="excluded.properties" />
462
<zipfileset dir="lib/" prefix="triplea_${triplea.version}/lib/">
463
<include name="**/*.jar" />
464
<include name="**/*.zip" />
467
<zipfileset dir="data/" prefix="triplea_${triplea.version}/data/">
468
<include name="**/*.dtd" />
469
<include name="**/*.gif" />
470
<include name="**/*.png" />
471
<include name="**/*.jpg" />
472
<include name="**/*.jpeg" />
473
<include name="**/*.txt" />
474
<include name="**/*.xml" />
475
<include name="**/*.wav" />
476
<include name="**/*.properties" />
479
<zipfileset dir="bin/" prefix="triplea_${triplea.version}/bin/">
480
<include name="**/*.bat" />
481
<include name="**/*.sh" />
484
<zipfileset dir="." prefix="triplea_${triplea.version}/">
485
<include name="build.xml" />
486
<include name=".ant.properties" />
487
<include name="readme.html" />
488
<include name="*.bat" />
489
<include name="*.sh" />
490
<include name="changelog.txt" />
491
<include name="launch4j.config.xml" />
492
<include name="launch4j_embedded_jre.config.xml" />
493
<include name="Info.plist" />
494
<include name="ServerInfo.plist" />
497
<zipfileset dir="icons/" prefix="triplea_${triplea.version}/icons/">
498
<include name="**/*.png" />
499
<include name="**/*.bmp" />
500
<include name="**/*.ico" />
501
<include name="**/*.icns" />
502
<include name="**/*.zip" />
505
<zipfileset dir="doc/" prefix="triplea_${triplea.version}/doc/">
506
<include name="**/*.html" />
507
<include name="**/*.png" />
508
<include name="**/*.gif" />
509
<include name="**/*.jpg" />
512
<zipfileset dir="license/" prefix="triplea_${triplea.version}/license/">
513
<include name="gpl.txt" />
516
<zipfileset dir="dice_servers/" prefix="triplea_${triplea.version}/dice_servers/">
517
<include name="*.properties" />
521
<zipfileset dir="images/" prefix="triplea_${triplea.version}/images/">
522
<include name="**/*.*" />
525
<zipfileset dir="maps/" prefix="triplea_${triplea.version}/maps/">
526
<include name="**/*.*" />
537
<target name="patch" depends="compile">
538
<jar destfile="patch.jar" basedir="classes">
539
<include name="games/strategy/**/*.class" />
540
<exclude name="**/GameRunner*.class" />
541
<exclude name="**/xml/**/*.class" />
547
<target name="javadoc" depends="init" description="Generate JavaDoc documentation">
548
<delete dir="apidoc" />
550
<mkdir dir="apidoc" />
552
<javadoc destdir="apidoc" Verbose="off">
553
<package name="games.strategy.*" />
555
<pathelement location="src/" />
564
<target name="test" depends="init,compile" description="run junit tests">
565
<junit fork="yes" haltonerror="on">
567
<pathelement path="${junit.jar}" />
568
<pathelement path="${classpath}" />
569
<pathelement path="lib/derby_10_1_2.jar" />
570
<pathelement path="classes/" />
571
<pathelement path="testclasses/" />
574
<formatter type="plain" />
575
<test name="games.strategy.AllTests" />