freecol/build.xml

1073 lines
49 KiB
XML
Raw Permalink Normal View History

<?xml version="1.0"?>
2007-04-27 19:26:57 +02:00
<!-- This file includes targets for building FreeCol,
the metaserver, distribution packages, running tests
and creating documentation. -->
<project name="FreeCol" default="package">
2007-04-27 19:26:57 +02:00
<description>
This file includes targets for building FreeCol,
the metaserver, distribution packages, running tests
and creating documentation.
</description>
2020-06-15 07:26:28 +02:00
<property name="java.target.version" value="11"/>
2007-04-27 19:26:57 +02:00
<property name="freecol.name" value="freecol"/>
<property environment="env"/>
2007-04-27 19:26:57 +02:00
<property name="freecol.data.dir" value="${basedir}/data"/>
<property name="freecol.rules.dir" value="${basedir}/data/rules"/>
2007-04-27 19:26:57 +02:00
<property name="freecol.src.dir" value="${basedir}/src"/>
<property name="freecol.build.dir" value="${basedir}/build"/>
<property name="freecol.packaging.dir" value="${basedir}/packaging"/>
<property name="freecol.release.dir" value="${basedir}/dist"/>
<property name="freecol.doc.dir" value="${basedir}/doc"/>
<property name="freecol.javadoc.dir" value="${freecol.doc.dir}/javadoc"/>
<property name="freecol.jar.file" value="${basedir}/FreeCol.jar"/>
<property name="freecol.main.class" value="net.sf.freecol.FreeCol"/>
2013-03-05 10:10:40 +01:00
<property name="freecol.metaserver.jar.file"
value="${basedir}/FreeCol-metaserver.jar"/>
<property name="freecol.overview.file"
value="${freecol.src.dir}/overview.html"/>
2010-11-21 14:30:14 +01:00
<property name="test" value="AllTests"/>
2013-10-10 12:26:23 +02:00
<property name="miglayout-swing.jar"
value="jars/miglayout-swing-5.3.jar"/>
2013-10-10 12:26:23 +02:00
<property name="miglayout-core.jar"
value="jars/miglayout-core-5.3.jar"/>
2017-09-11 17:26:41 +02:00
<property name="cli.jar" value="jars/commons-cli-1.4.jar"/>
<property name="cortado.jar" value="jars/cortado-0.6.0.jar"/>
2010-11-21 14:41:16 +01:00
2007-04-27 19:26:57 +02:00
2008-01-22 07:44:00 +01:00
<path id="libraries.classpath">
2009-01-27 17:20:27 +01:00
<!-- MigLayout manager -->
2013-10-10 12:26:23 +02:00
<pathelement location="${basedir}/${miglayout-swing.jar}"/>
<pathelement location="${basedir}/${miglayout-core.jar}"/>
2009-04-05 14:14:26 +02:00
<!-- Command line processor -->
2010-11-21 14:30:14 +01:00
<pathelement location="${basedir}/${cli.jar}"/>
2009-04-04 11:43:00 +02:00
<!-- Cortado Video Applet -->
2010-11-21 14:30:14 +01:00
<pathelement location="${basedir}/${cortado.jar}"/>
2012-11-09 22:41:24 +01:00
<!-- JOgg/JOrbis libraries -->
2015-08-12 01:31:58 +02:00
<pathelement location="${basedir}/jars/jogg-0.0.17.jar"/>
<pathelement location="${basedir}/jars/jorbis-0.0.17.jar"/>
2019-03-26 05:53:20 +01:00
<!-- findbugs annotations -->
<pathelement location="${basedir}/jars/findbugs-annotations.jar"/>
</path>
2008-01-22 07:44:00 +01:00
<path id="junit.classpath">
<pathelement location="${basedir}/test/lib/junit.jar" />
</path>
<path id="freecol.build.classpath">
<path refid="libraries.classpath" />
</path>
<path id="test.build.classpath">
<path refid="junit.classpath"/>
<path refid="libraries.classpath" />
</path>
<path id="test.run.classpath">
<pathelement location="${freecol.build.dir}" />
<path refid="junit.classpath"/>
<path refid="libraries.classpath" />
</path>
2007-04-27 19:26:57 +02:00
<condition property="isOsUnixLike">
<os family="unix" />
</condition>
2007-04-27 19:26:57 +02:00
<condition property="isOsWindows">
<os family="windows" />
</condition>
<condition property="isOsMac">
<os family="mac" />
</condition>
<condition property="isNotMacOrWindows">
<not>
<or>
<isset property="isOsWindows" />
<isset property="isOsMac" />
</or>
</not>
</condition>
2007-04-27 19:26:57 +02:00
<target name="define-jsmoothgen">
<taskdef name="jsmoothgen"
2013-03-05 10:10:40 +01:00
classname="net.charabia.jsmoothgen.ant.JSmoothGen"
classpath="${freecol.build.dir}/jars/jsmoothgen-ant.jar"/>
</target>
2007-04-08 11:35:40 +02:00
2007-04-27 19:26:57 +02:00
<target name="init" unless="TSTAMP">
<tstamp/>
</target>
<!-- Compiles the java source files. -->
<target name="compile" depends="init">
<mkdir dir="${freecol.build.dir}"/>
<javac srcdir="${freecol.src.dir}"
2013-03-05 10:10:40 +01:00
destdir="${freecol.build.dir}"
classpathref="freecol.build.classpath"
debug="on"
optimize="on"
deprecation="off"
source="${java.target.version}"
target="${java.target.version}"
includeantruntime="false">
<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-Xlint:deprecation"/>
<compilerarg value="-g"/>
2008-04-14 17:17:48 +02:00
</javac>
2007-04-27 19:26:57 +02:00
</target>
2008-01-22 07:44:00 +01:00
<!-- Compile the JUnit tests -->
2007-04-27 19:26:57 +02:00
<target name="compile-test" depends="init">
<mkdir dir="${freecol.build.dir}"/>
<javac srcdir="test/src"
2013-03-05 10:10:40 +01:00
destdir="${freecol.build.dir}"
classpathref="test.build.classpath"
debug="on"
optimize="on"
deprecation="off"
source="${java.target.version}"
target="${java.target.version}"
includeantruntime="false">
2014-11-26 01:21:19 +01:00
<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-Xlint:deprecation"/>
<compilerarg value="-g"/>
2012-06-10 14:18:02 +02:00
</javac>
2007-04-27 19:26:57 +02:00
</target>
2013-03-05 10:10:40 +01:00
<target name="build" depends="init,compile"
description="Compiles the source files.">
<copy todir="${freecol.build.dir}">
<fileset dir="${freecol.src.dir}" includes="**/*.xml" />
</copy>
</target>
<condition property="have-revision">
2013-03-05 10:10:40 +01:00
<isset property="FreeCol.Revision" />
</condition>
<target name="git-raw-revision" unless="have-revision"
description="Set gitRawRevision property using git">
2013-03-05 10:10:40 +01:00
<exec executable="git" failifexecutionfails="false"
outputproperty="gitRawRevision" logError="true">
<arg value="rev-parse"/>
<arg value="HEAD"/>
</exec>
</target>
<target name="git-revision" unless="have-revision"
depends="git-raw-revision" if="gitRawRevision"
description="Set FreeCol.Revision from gitRawRevision using git">
2013-03-05 10:10:40 +01:00
<exec executable="git" failifexecutionfails="false"
outputproperty="FreeCol.Revision" logError="true">
<arg value="describe"/>
<arg value="--always"/>
</exec>
<echo message="${FreeCol.Revision}" />
</target>
<target name="manifest" depends="git-revision"
description="Creates the Manifest file.">
2013-03-05 10:10:40 +01:00
<manifestclasspath property="jar.classpath"
jarfile="Freecol.jar">
<classpath refid="libraries.classpath" />
</manifestclasspath>
<manifest file="${basedir}/src/MANIFEST.MF">
<attribute name="Created-By" value="FreeCol Team"/>
<attribute name="Main-Class" value="${freecol.main.class}"/>
2013-03-05 10:10:40 +01:00
<attribute name="Class-Path" value="${jar.classpath}"/>
<attribute name="Product-Name" value="FreeCol"/>
<attribute name="Package-Title" value="FreeCol"/>
<attribute name="Package-Version" value="${FreeCol.Revision}"/>
<attribute name="Package-Vendor" value="FreeCol Team"/>
</manifest>
</target>
2007-04-27 19:26:57 +02:00
<!-- Compiles the source files and creates a JAR-file. -->
2007-11-11 12:16:49 +01:00
<target name="package" depends="init,build,manifest" description="Compiles the source files and creates a JAR-file.">
2007-04-27 19:26:57 +02:00
<jar jarfile="${freecol.jar.file}"
2013-03-05 10:10:40 +01:00
basedir="${freecol.build.dir}"
manifest="${basedir}/src/MANIFEST.MF"
2015-07-30 02:24:42 +02:00
includes="net/**, splash.jpg"
excludes="net/sf/freecol/metaserver/**"/>
2007-04-27 19:26:57 +02:00
</target>
2017-07-13 01:33:55 +02:00
<target name="metamanifest" depends="git-revision"
description="Creates the Manifest file for the metaserver.">
<manifestclasspath property="jar.classpath"
jarfile="${freecol.metaserver.jar.file}">
<classpath refid="libraries.classpath" />
</manifestclasspath>
<manifest file="${basedir}/src/METAMANIFEST.MF">
<attribute name="Created-By" value="FreeCol Team"/>
<attribute name="Main-Class" value="net.sf.freecol.metaserver.MetaServer"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
<attribute name="Product-Name" value="FreeCol"/>
<attribute name="Package-Title" value="FreeCol"/>
<attribute name="Package-Version" value="${FreeCol.Revision}"/>
<attribute name="Package-Vendor" value="FreeCol Team"/>
</manifest>
</target>
<!-- Compiles the metaserver and creates a JAR-file.
FIXME: including everything in common is excessive. -->
<target name="metaserver" depends="init,build,metamanifest"
description="Compiles the metaserver and creates a JAR-file.">
2007-04-27 19:26:57 +02:00
<jar jarfile="${freecol.metaserver.jar.file}"
2013-03-05 10:10:40 +01:00
basedir="${freecol.build.dir}"
2017-07-13 01:33:55 +02:00
manifest="${basedir}/src/METAMANIFEST.MF"
includes="net/sf/freecol/metaserver/**,
net/sf/freecol/client/ClientOptions.class,
net/sf/freecol/common/**,
org/**"/>
2007-04-27 19:26:57 +02:00
</target>
<target name="mydist" depends="mydistWindows,mydistMac,mydistJava"
description="Creates a distribution package for the current system." />
<target name="mydistWindows" if="isOsWindows">
<antcall target="winInstallerBundle"/>
</target>
<target name="mydistMac" if="isOsMac">
<antcall target="tarMacJavaBundle"/>
</target>
<target name="mydistJava" if="isNotMacOrWindows">
<antcall target="javaInstallerBundle"/>
</target>
2007-04-27 19:26:57 +02:00
<target name="nightly-release" description="Creates nightly build distribution.">
<property name="print.manual.is.up.to.date" value="true"/>
<property name="print.devmanual.is.up.to.date" value="true"/>
<property name="nightly.version" value="true" />
<property name="skip.dist.source" value="true" />
<antcall target="distclean" />
<antcall target="dist" />
<mkdir dir="${freecol.release.dir}/releases"/>
<copy todir="${freecol.release.dir}/releases">
<fileset dir="${freecol.release.dir}" includes="freecol-git-*"/>
</copy>
</target>
2007-04-27 19:26:57 +02:00
<!--
Creates archives and installers for distribution and places these in the
"dist" directory.
2013-03-05 10:10:40 +01:00
Various platforms can be omitted for prerelease testing by
setting properties on the command line:
2007-04-27 19:26:57 +02:00
skip.dist.mac="true" suppresses mac packaging
skip.dist.installer="true" suppresses creation of installers
skip.dist.java="true" suppresses zip and tar creation of the jarfiles
skip.dist.source="true" suppresses packaging the source files
For a formal release, none of these properties should be set.
-->
2013-03-05 10:10:40 +01:00
<target name="dist"
description="Creates archives and installers for distribution."
2011-01-23 11:40:16 +01:00
depends="init,initDist,zipJavaBundle,zipSourceBundle,javaInstallerBundle,winInstallerBundle,tarMacJavaBundle">
2007-04-27 19:26:57 +02:00
<echo message="" />
<echo message="-------------------------------------------------"/>
<echo message="Distribution files created:"/>
<echo message="${freecol.release.dir}"/>
<echo message="-------------------------------------------------"/>
</target>
<target name="initDist" depends="init,setReleaseVersion">
<mkdir dir="${freecol.release.dir}"/>
</target>
2011-04-10 11:52:26 +02:00
<target name="setReleaseVersion" depends="askReleaseVersion">
2013-03-05 10:10:40 +01:00
<property name="freecol.release.name"
value="${freecol.name}-${freecol.version}"/>
2007-04-27 19:26:57 +02:00
<echo message="Creating Distribution of ${freecol.release.name}"/>
<replaceregexp file="${freecol.src.dir}/net/sf/freecol/FreeCol.java"
match="FREECOL_VERSION\s*=\s*&quot;(.*?)&quot;\;"
2013-03-05 10:10:40 +01:00
replace="FREECOL_VERSION = &quot;${freecol.version}&quot;\;"/>
<replaceregexp file="${freecol.doc.dir}/version.sty"
match="fcversion\}\{(.*?)\}"
replace="fcversion\}\{${freecol.version}\}"/>
2007-04-27 19:26:57 +02:00
<echo message="Game version updated in FreeCol.java" />
</target>
<target name="askReleaseVersion" depends="setNightlyVersion" unless="freecol.version">
2013-02-06 07:24:29 +01:00
<input message="Please specify the release version (default: git-${DSTAMP}): "
addproperty="freecol.version" defaultvalue="git-${DSTAMP}" />
2011-04-10 11:52:26 +02:00
</target>
<!-- Whenever calling an ant command that prompts for version
passing in -Dnightly.version=true will set the
version to the datestamp automatically -->
<target name="setNightlyVersion" unless="freecol.version">
<condition value="git-${DSTAMP}" property="freecol.version">
<isset property="nightly.version"/>
</condition>
</target>
<target name="prepareManual" depends="initDist,print-manuals">
2007-04-27 19:26:57 +02:00
<mkdir dir="${freecol.release.dir}/manual/${freecol.name}"/>
<copy todir="${freecol.release.dir}/manual/${freecol.name}">
<fileset dir="${freecol.doc.dir}" includes="FreeCol.pdf"/>
<fileset dir="${freecol.doc.dir}" includes="developer.pdf"/>
2007-04-27 19:26:57 +02:00
</copy>
</target>
2013-02-06 07:24:29 +01:00
<target name="prepareBaseFiles" depends="initDist,desktop-entry">
<antcall target="cleanMain"/>
2007-04-27 19:26:57 +02:00
<antcall target="package"/>
<mkdir dir="${freecol.release.dir}/base/${freecol.name}"/>
<copy todir="${freecol.release.dir}/base/${freecol.name}">
<fileset dir="${basedir}" includes="FreeCol.jar"/>
<fileset dir="${basedir}" includes="splash.jpg"/>
2007-04-27 19:26:57 +02:00
<fileset dir="${freecol.packaging.dir}/common" includes="COPYING"/>
<fileset dir="${freecol.packaging.dir}/common" includes="README"/>
2013-03-05 10:10:40 +01:00
<fileset dir="${freecol.packaging.dir}/common"
includes="freecol.cmd"/>
<fileset dir="${freecol.packaging.dir}/common"
includes="freecol.xpm"/>
<fileset dir="${basedir}" includes="data/**"/>
<fileset dir="${basedir}" includes="jars/**"/>
2007-04-27 19:26:57 +02:00
</copy>
2012-12-29 02:32:05 +01:00
<copy file="${freecol.packaging.dir}/common/freecol.sh"
tofile="${freecol.release.dir}/base/${freecol.name}/freecol"/>
2007-04-27 19:26:57 +02:00
</target>
<target name="prepareSourceFiles" depends="initDist">
<antcall target="cleanMain"/>
2007-04-27 19:26:57 +02:00
<mkdir dir="${freecol.release.dir}/source/${freecol.name}"/>
<copy todir="${freecol.release.dir}/source/${freecol.name}">
2013-03-05 10:10:40 +01:00
<fileset dir="${basedir}"
excludes="splash.jpg,dist/**,data/**,jars/**,www.freecol.org/**,nbproject/**,srcdata/**,unused/**"/>
2007-04-27 19:26:57 +02:00
</copy>
</target>
<target name="prepareWinFiles" depends="initDist,define-jsmoothgen">
2013-03-05 10:10:40 +01:00
<jsmoothgen project="${freecol.build.dir}/startup.jsmooth"
skeletonroot="${freecol.build.dir}/skeletons"/>
2007-04-27 19:26:57 +02:00
<move todir="${freecol.release.dir}/win/${freecol.name}">
<fileset dir="${freecol.build.dir}" includes="freecol.exe"/>
</move>
<mkdir dir="${freecol.release.dir}/win/${freecol.name}/Uninstaller"/>
2013-03-05 10:10:40 +01:00
<jsmoothgen project="${freecol.build.dir}/uninstaller.jsmooth"
skeletonroot="${freecol.build.dir}/skeletons"/>
2007-04-27 19:26:57 +02:00
<move todir="${freecol.release.dir}/win/${freecol.name}/Uninstaller">
<fileset dir="${freecol.build.dir}" includes="uninstaller.exe"/>
</move>
</target>
2013-03-05 10:10:40 +01:00
<target name="zipJavaBundle" unless="skip.dist.java"
depends="initDist,prepareManual,prepareBaseFiles">
2007-04-27 19:26:57 +02:00
<zip destfile="${freecol.release.dir}/${freecol.release.name}.zip">
2013-03-05 10:10:40 +01:00
<fileset dir="${freecol.release.dir}/base"
includes="${freecol.name}/**"/>
<fileset dir="${freecol.release.dir}/manual"
includes="${freecol.name}/**"/>
2007-04-27 19:26:57 +02:00
</zip>
</target>
2013-03-05 10:10:40 +01:00
<target name="zipSourceBundle" unless="skip.dist.source"
depends="initDist,prepareBaseFiles,prepareSourceFiles">
2007-04-27 19:26:57 +02:00
<zip destfile="${freecol.release.dir}/${freecol.release.name}-src.zip">
2013-03-05 10:10:40 +01:00
<fileset dir="${freecol.release.dir}/base"
includes="${freecol.name}/**"
excludes="${freecol.name}/FreeCol.jar,${freecol.name}/freecol.*,${freecol.name}/freecol"/>
2013-03-05 10:10:40 +01:00
<fileset dir="${freecol.release.dir}/source"
includes="${freecol.name}/**"/>
2007-04-27 19:26:57 +02:00
</zip>
</target>
<target name="executeIzpack">
2011-01-23 11:40:16 +01:00
<izpack output="${freecol.release.dir}/${freecol.release.name}-installer.jar"
installerType="standard"
2007-04-27 19:26:57 +02:00
basedir="${freecol.release.dir}/"
izpackdir="${freecol.build.dir}">
<config><![CDATA[
<installation version="1.0">
<info>
<appname>FreeCol</appname>
<appversion>@{freecol.version}</appversion>
<appsubpath>freecol</appsubpath>
<url>http://www.freecol.org</url>
<authors>
<author name="The FreeCol Team" email="developers@freecol.org" />
</authors>
<javaversion>11</javaversion>
2007-04-27 19:26:57 +02:00
</info>
<guiprefs width="640" height="480" resizable="no">
<laf name="looks">
<os family="unix" />
</laf>
<modifier key="langDisplayType" value="native"/>
</guiprefs>
2007-04-27 19:26:57 +02:00
<locale>
2010-06-23 08:05:04 +02:00
<langpack iso3="cat"/>
<langpack iso3="chn"/>
<langpack iso3="cze"/>
<langpack iso3="dan"/>
2007-04-27 19:26:57 +02:00
<langpack iso3="deu"/>
2010-06-23 08:05:04 +02:00
<langpack iso3="eng"/>
2011-01-22 10:34:39 +01:00
<!-- <langpack iso3="eus"/> -->
2007-04-27 19:26:57 +02:00
<langpack iso3="fin"/>
<langpack iso3="fra"/>
2011-01-22 10:34:39 +01:00
<!-- <langpack iso3="glg"/> -->
<langpack iso3="hun"/>
<langpack iso3="ita"/>
2010-06-23 08:05:04 +02:00
<langpack iso3="jpn"/>
<!-- <langpack iso3="mys"/> -->
<langpack iso3="ned"/>
2010-06-23 08:05:04 +02:00
<langpack iso3="nor"/>
<langpack iso3="pol"/>
2007-04-27 19:26:57 +02:00
<langpack iso3="por"/>
2011-01-22 10:34:39 +01:00
<!-- <langpack iso3="prt"/> -->
2010-06-23 08:05:04 +02:00
<!-- <langpack iso3="rom"/> -->
<langpack iso3="rus"/>
2010-06-23 08:05:04 +02:00
<!-- <langpack iso3="scg"/> -->
<langpack iso3="spa"/>
2010-06-23 08:05:04 +02:00
<!-- <langpack iso3="svk"/> -->
<langpack iso3="swe"/>
2010-06-23 08:05:04 +02:00
<langpack iso3="ukr"/>
2007-04-27 19:26:57 +02:00
</locale>
<resources>
<res id="LicencePanel.licence" src="base/@{freecol.name}/COPYING"/>
<res id="shortcutSpec.xml" src="@{freecol.build.dir}/winShortcutSpec.xml"/>
<res id="Unix_shortcutSpec.xml" src="@{freecol.build.dir}/unixShortcutSpec.xml"/>
<res id="installer.langsel.img" src="@{freecol.build.dir}/install.png"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_cat" src="@{freecol.build.dir}/installer/lang.xml_cat"/>
<res id="packsLang.xml_chn" src="@{freecol.build.dir}/installer/lang.xml_chn"/>
<res id="packsLang.xml_cze" src="@{freecol.build.dir}/installer/lang.xml_cze"/>
<res id="packsLang.xml_dan" src="@{freecol.build.dir}/installer/lang.xml_dan"/>
<res id="packsLang.xml_deu" src="@{freecol.build.dir}/installer/lang.xml_deu"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_eng" src="@{freecol.build.dir}/installer/lang.xml_eng"/>
<res id="packsLang.xml_eus" src="@{freecol.build.dir}/installer/lang.xml_eus"/>
<res id="packsLang.xml_fin" src="@{freecol.build.dir}/installer/lang.xml_fin"/>
2007-07-12 20:48:56 +02:00
<res id="packsLang.xml_fra" src="@{freecol.build.dir}/installer/lang.xml_fra"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_glg" src="@{freecol.build.dir}/installer/lang.xml_glg"/>
<res id="packsLang.xml_hun" src="@{freecol.build.dir}/installer/lang.xml_hun"/>
<res id="packsLang.xml_ita" src="@{freecol.build.dir}/installer/lang.xml_ita"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_jpn" src="@{freecol.build.dir}/installer/lang.xml_jpn"/>
<!-- <res id="packsLang.xml_mys" src="@{freecol.build.dir}/installer/lang.xml_mys"/> -->
<res id="packsLang.xml_ned" src="@{freecol.build.dir}/installer/lang.xml_ned"/>
<res id="packsLang.xml_nor" src="@{freecol.build.dir}/installer/lang.xml_nor"/>
<res id="packsLang.xml_pol" src="@{freecol.build.dir}/installer/lang.xml_pol"/>
2007-07-13 08:50:08 +02:00
<res id="packsLang.xml_por" src="@{freecol.build.dir}/installer/lang.xml_por"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_prt" src="@{freecol.build.dir}/installer/lang.xml_prt"/>
<!-- <res id="packsLang.xml_rom" src="@{freecol.build.dir}/installer/lang.xml_rom"/> -->
<res id="packsLang.xml_rus" src="@{freecol.build.dir}/installer/lang.xml_rus"/>
<!-- <res id="packsLang.xml_scg" src="@{freecol.build.dir}/installer/lang.xml_scg"/> -->
<res id="packsLang.xml_spa" src="@{freecol.build.dir}/installer/lang.xml_spa"/>
<!-- <res id="packsLang.xml_svk" src="@{freecol.build.dir}/installer/lang.xml_svk"/> -->
2007-07-13 13:28:41 +02:00
<res id="packsLang.xml_swe" src="@{freecol.build.dir}/installer/lang.xml_swe"/>
2010-06-19 09:43:45 +02:00
<res id="packsLang.xml_ukr" src="@{freecol.build.dir}/installer/lang.xml_ukr"/>
2007-04-27 19:26:57 +02:00
</resources>
<native type="izpack" name="ShellLink.dll"/>
2015-02-26 12:13:40 +01:00
<native type="izpack" name="ShellLink_x64.dll"/>
2007-04-27 19:26:57 +02:00
<panels>
<panel classname="HelloPanel"/>
<panel classname="LicencePanel"/>
<panel classname="TargetPanel"/>
<panel classname="PacksPanel"/>
<panel classname="InstallPanel"/>
<panel classname="ShortcutPanel"/>
<panel classname="SimpleFinishPanel"/>
</panels>
<packs>
<pack id="FreeCol" name="FreeCol" required="yes">
<description>The FreeCol application and data files. This pack includes all files required to play the game.</description>
2007-04-27 19:26:57 +02:00
<fileset dir="base/@{freecol.name}" targetdir="$INSTALL_PATH"/>
<fileset dir="@{freecol.packaging.dir}/common/" includes="Uninstaller/**" targetdir="$INSTALL_PATH"/>
<fileset dir="win/@{freecol.name}" targetdir="$INSTALL_PATH" os="windows"/>
<executable targetfile="$INSTALL_PATH/freecol" stage="never" keep="true" />
<executable targetfile="$INSTALL_PATH/Uninstaller/uninstaller" stage="never" keep="true" />
</pack>
<pack id="GameManual" name="Game Manual" required="no" preselected="yes">
<description>This pack includes the game manual.</description>
2007-04-27 19:26:57 +02:00
<fileset dir="manual/@{freecol.name}" targetdir="$INSTALL_PATH"/>
</pack>
</packs>
</installation>
2013-03-05 10:10:40 +01:00
]]>
</config>
2007-04-27 19:26:57 +02:00
</izpack>
</target>
2013-03-05 10:10:40 +01:00
<target name="javaInstallerBundle" unless="skip.dist.installer"
description="Builds a platform independent installer"
2010-06-19 09:43:45 +02:00
depends="initDist,prepareWinFiles,prepareManual,prepareBaseFiles,prepareSourceFiles,installer-translations">
<taskdef name="izpack"
2013-03-05 10:10:40 +01:00
classname="com.izforge.izpack.ant.IzPackTask"
classpath="${freecol.build.dir}/jars/standalone-compiler.jar"/>
<antcall target="executeIzpack" />
</target>
2013-03-05 10:10:40 +01:00
<target name="winInstallerBundle" unless="skip.dist.installer"
description="Builds a windows installer"
depends="initDist,javaInstallerBundle,define-jsmoothgen">
2007-04-27 19:26:57 +02:00
<copy todir="${freecol.release.dir}">
<fileset dir="${freecol.build.dir}" includes="installer.jsmooth"/>
</copy>
<replace file="${freecol.release.dir}/installer.jsmooth"
2013-03-05 10:10:40 +01:00
token="%ant:freecol.release.name%"
value="${freecol.release.name}"/>
<replace file="${freecol.release.dir}/installer.jsmooth"
2013-03-05 10:10:40 +01:00
token="%ant:freecol.installerjar%"
value="${freecol.release.dir}/${freecol.release.name}-installer.jar"/>
<jsmoothgen project="${freecol.release.dir}/installer.jsmooth"
skeletonroot="${freecol.build.dir}/skeletons"/>
2007-04-27 19:26:57 +02:00
</target>
2022-05-09 07:43:36 +02:00
<target name="win-complete-installer"
description="Builds an installer for Windows with an included JVM."
depends="initDist,prepareManual,prepareBaseFiles">
<exec executable="jpackage" dir="." >
<arg value="--input"/>
<arg file="${freecol.release.dir}/base/freecol/"/>
<arg value="--type"/>
<arg value="exe"/>
<arg value="--name"/>
<arg value="FreeCol"/>
<arg value="--dest"/>
<arg file="${freecol.release.dir}"/>
<arg value="--add-modules"/>
<arg value="java.base,java.datatransfer,java.desktop,java.logging,java.xml"/>
<arg value="--main-jar"/>
<arg value="FreeCol.jar"/>
<arg value="--win-dir-chooser"/>
<arg value="--win-menu"/>
<arg value="--win-shortcut"/>
<arg value="--arguments"/>
<arg value="--freecol-data app/data"/>
<arg value="--app-version"/>
<arg value="${freecol.version}"/>
<arg value="--icon"/>
<arg file="packaging/icons/freecol.ico"/>
</exec>
<mkdir dir="${freecol.release.dir}/releases"/>
<copy todir="${freecol.release.dir}/releases">
<fileset dir="${freecol.release.dir}" includes="FreeCol-*"/>
</copy>
</target>
2022-05-09 07:43:36 +02:00
<target name="mac-complete-installer"
description="Builds an installer for macOs with an included JVM."
depends="initDist,prepareManual,prepareBaseFiles">
<exec executable="jpackage" dir="." >
<arg value="--input"/>
<arg file="${freecol.release.dir}/base/freecol/"/>
<arg value="--name"/>
<arg value="FreeCol"/>
<arg value="--dest"/>
<arg file="${freecol.release.dir}"/>
<arg value="--add-modules"/>
<arg value="java.base,java.datatransfer,java.desktop,java.logging,java.xml"/>
<arg value="--main-jar"/>
<arg value="FreeCol.jar"/>
<arg value="--arguments"/>
<arg value="--freecol-data $$APPDIR/data"/>
<arg value="--app-version"/>
<arg value="${freecol.version}"/>
<arg value="--mac-package-identifier"/>
<arg value="org.freecol.FreeCol"/>
<arg value="--icon"/>
<arg file="packaging/icons/FreeCol.icns"/>
</exec>
<mkdir dir="${freecol.release.dir}/releases"/>
<copy todir="${freecol.release.dir}/releases">
<fileset dir="${freecol.release.dir}" includes="FreeCol-*"/>
</copy>
</target>
2007-04-27 19:26:57 +02:00
<!-- Builds a doubleclickable application bundle running on Mac OS X -->
2013-03-05 10:10:40 +01:00
<target name="macJavaBundle" unless="skip.dist.mac"
depends="prepareManual,prepareBaseFiles">
<!-- JarBundler is a feature-rich Ant task which will create a Mac OS X
application bundle from a list of Jar files and a main class name.
(GPL-Software) -> http://informagen.com/JarBundler/ -->
<!-- Applications created with JarBundler attempt to prompt the user to
download Java SE 6, a universalJavaApplicationStub is used for
Java 1.8+.
https://github.com/tofi86/universalJavaApplicationStub
-->
<taskdef name="jarbundler"
classname="com.ultramixer.jarbundler.JarBundler"
classpath="${freecol.build.dir}/jars/jarbundler-core-3.3.0.jar"/>
2007-04-27 19:26:57 +02:00
<jarbundler dir="${freecol.release.dir}"
2013-03-05 10:10:40 +01:00
name="FreeCol"
mainclass="${freecol.main.class}"
2013-03-05 10:10:40 +01:00
version="${freecol.version}"
vmoptions="-Xmx2G -Dapple.awt.fakefullscreen=true"
jvmversion="1.11"
2013-03-05 10:10:40 +01:00
arguments="--windowed --freecol-data FreeCol.app/Contents/Resources/"
stubfile="${freecol.build.dir}/skeletons/universalJavaApplicationStub"
useJavaXKey="true"
2013-03-05 10:10:40 +01:00
icon="${freecol.packaging.dir}/icons/FreeCol.icns">
2007-04-27 19:26:57 +02:00
<jarfileset dir="${freecol.release.dir}/base/freecol/">
<include name="**/*" />
<exclude name="data/**" />
2013-03-05 10:10:40 +01:00
</jarfileset>
2007-04-27 19:26:57 +02:00
<resourcefileset dir="${freecol.release.dir}/base/freecol/data" />
</jarbundler>
</target>
2013-03-05 10:10:40 +01:00
<target name="tarMacJavaBundle" unless="skip.dist.mac"
depends="tarMacJavaBundleOnWindows"
2013-03-05 10:10:40 +01:00
description="Creates a Mac OS X application bundle inside a tar file.">
2007-04-27 19:26:57 +02:00
<exec executable="tar">
<arg value="cfvj"/>
<arg value="${freecol.release.dir}/${freecol.release.name}-mac.tar.bz2"/>
<arg value="-C"/>
<arg value="${freecol.release.dir}"/>
<arg value="FreeCol.app/"/>
</exec>
</target>
2013-03-05 10:10:40 +01:00
<target name="tarMacJavaBundleOnWindows" depends="macJavaBundle"
unless="skip.dist.mac" if="isOsWindows">
<echo message="Warning: You are building a Mac Os X Java Application Bundle
containing a Copy Java Application Stub. Creating a bundle with the current
copy of Java Launching Stub could lead to a future situation where the
JavaApplicationStub file could become incompatible with a future
OS X update. To avoid this, use a unix like system ... "/>
2013-03-05 10:10:40 +01:00
<tar destfile="${freecol.release.dir}/${freecol.release.name}-mac.tar.bz2"
compression="bzip2">
<tarfileset dir="${freecol.release.dir}" mode="755"
2013-03-05 10:10:40 +01:00
includes="FreeCol.app/Contents/MacOS/FreeCol"
excludes="**/freecol*"
followsymlinks="false"/>
2007-04-27 19:26:57 +02:00
<tarfileset followsymlinks="false" dir="${freecol.release.dir}">
<include name="FreeCol.app/**"/>
<exclude name="**/freecol*"/>
<exclude name="FreeCol.app/Contents/MacOS/FreeCol"/>
</tarfileset>
2007-04-27 19:26:57 +02:00
</tar>
</target>
<target name="cleanBuild" depends="init"
2013-03-05 10:10:40 +01:00
description="Cleans the directories by removing auto-generated files.">
2007-04-27 19:26:57 +02:00
<delete quiet="true" includeEmptyDirs="true">
<fileset dir="${freecol.build.dir}" includes="net/**" />
<fileset dir="${freecol.build.dir}" includes="timestamp.inf" />
<fileset dir="${freecol.build.dir}" includes="report/**" />
<fileset dir="${freecol.build.dir}" includes="TEST-net.sf.freecol.*" />
<fileset dir="${freecol.build.dir}" includes="dependencies.txt" />
<fileset dir="${freecol.doc.dir}"
excludes="*.tex *.sty images/* specification.*" />
2007-04-27 19:26:57 +02:00
</delete>
</target>
<target name="cleanMain" depends="init"
description="Clean the main (non-build) tree by removing auto-generated files.">
2013-03-05 10:10:40 +01:00
<delete quiet="true" file="${freecol.jar.file}"/>
<delete quiet="true" file="${freecol.metaserver.jar.file}"/>
2013-03-05 10:10:40 +01:00
<delete quiet="true" file="TESTS-TestSuites.xml"/>
2007-04-27 19:26:57 +02:00
<delete quiet="true" dir="${freecol.javadoc.dir}"/>
2013-03-05 10:10:40 +01:00
<delete quiet="true" file="Freecol.log"/>
<delete quiet="true" file="${basedir}/test/data/specification.xml"/>
2007-04-27 19:26:57 +02:00
</target>
<target name="clean" depends="cleanBuild,cleanMain"
description="General cleanup.">
</target>
2013-03-05 10:10:40 +01:00
<target name="distclean" depends="init,clean"
description="Cleans the directories and removes the distribution directory.">
<delete quiet="true" includeEmptyDirs="true" followsymlinks="false"
removeNotFollowedSymlinks="true">
2007-04-27 19:26:57 +02:00
<fileset dir="${freecol.release.dir}" />
</delete>
</target>
<target name="fix" depends="init">
<fixcrlf srcdir="${freecol.src.dir}"
2013-03-05 10:10:40 +01:00
includes="**/*.java"
eol="asis"
tab="remove"
javafiles="yes"
tablength="4"
eof="asis"/>
2007-04-27 19:26:57 +02:00
</target>
<!-- Generate JavaDoc documentation. -->
2013-03-05 10:10:40 +01:00
<target name="javadoc" depends="init"
description="Generate JavaDoc documentation.">
2007-04-27 19:26:57 +02:00
<mkdir dir="${freecol.javadoc.dir}"/>
<javadoc sourcepath="${freecol.src.dir}"
2013-03-05 10:10:40 +01:00
overview="${freecol.overview.file}"
destdir="${freecol.javadoc.dir}"
packagenames="net.sf.freecol.*"
private="true"
classpathref="freecol.build.classpath"
Author="true"
Windowtitle="FreeCol Code Documentation"/>
2007-04-27 19:26:57 +02:00
<echo message="" />
<echo message="-------------------------------------------------"/>
<echo message="JavaDoc-generated documentation created:"/>
<echo message="${freecol.javadoc.dir}"/>
<echo message="-------------------------------------------------"/>
</target>
<!-- example:
2013-03-05 10:10:40 +01:00
ant -lib test/lib/junit.jar -Dtest=common.model.BuildingTest test
-->
<target name="test" depends="build-unit-tests"
2013-03-05 10:10:40 +01:00
description="Runs a particular unit test">
2007-04-27 19:26:57 +02:00
<!-- if the next fails then here is the long answer:
2013-03-05 10:10:40 +01:00
http://ant.apache.org/faq.html#delegating-classloader
the short answer depends.
if you have Ant 1.7, the junit.jar can exist on the classpath.
2014-10-10 02:08:43 +02:00
upgrading to 1.7 may be the best solution. Later ant
should be fine.
2013-03-05 10:10:40 +01:00
if you have Ant 1.6:
ant -lib test/lib/junit.jar testall
if you have a version of Ant prior to 1.6 on Windows:
set CLASSPATH=%CLASSPATH%;test\lib\junit.jar
ant testall
if you have a version of Ant prior to 1.6 on UNIX:
export CLASSPATH=${CLASSPATH}:test/lib/junit.jar; ant testall
-->
2007-04-27 19:26:57 +02:00
<junit printsummary="yes">
2013-03-05 10:10:40 +01:00
<classpath refid="test.run.classpath"/>
<formatter type="brief" usefile="false" />
<formatter type="plain" />
<test todir="${freecol.build.dir}" name="net.sf.freecol.${test}" />
<sysproperty key="java.awt.headless" value="true" />
2007-04-27 19:26:57 +02:00
</junit>
2013-03-05 10:10:40 +01:00
<echo message="For more detailed information about this test run see:"/>
<echo message="${freecol.build.dir}/TEST-net.sf.freecol.${test}.txt"/>
2007-04-27 19:26:57 +02:00
</target>
<target name="testall" depends="build-unit-tests" unless="skip.dist.test"
2007-09-24 21:15:32 +02:00
description="Runs all unit tests">
2013-03-05 10:10:40 +01:00
<delete dir="${freecol.build.dir}/report" />
<mkdir dir="${freecol.build.dir}/report"/>
<mkdir dir="${freecol.build.dir}/report/xml"/>
2007-04-27 19:26:57 +02:00
<!-- if the next fails then here is the long answer:
2013-03-05 10:10:40 +01:00
http://ant.apache.org/faq.html#delegating-classloader
the short answer depends.
if you have Ant 1.7, the junit.jar can exist on the classpath.
upgrading to 1.7 may be the best solution.
if you have Ant 1.6:
ant -lib test/lib/junit.jar testall
if you have a version of Ant prior to 1.6 on Windows:
set CLASSPATH=%CLASSPATH%;test\lib\junit.jar
ant testall
if you have a version of Ant prior to 1.6 on UNIX:
export CLASSPATH=${CLASSPATH}:test/lib/junit.jar; ant testall
-->
<junit printsummary="on" errorProperty="error.junit"
2015-10-10 18:37:17 +02:00
failureProperty="error.junit" fork="yes" maxmemory="96M">
2008-01-22 07:44:00 +01:00
<classpath refid="test.run.classpath"/>
2007-04-27 19:26:57 +02:00
<formatter type="xml" />
2013-03-05 10:10:40 +01:00
<test todir="${freecol.build.dir}/report/xml"
name="net.sf.freecol.AllTests" fork="yes"/>
2013-03-05 10:10:40 +01:00
<!--
<batchtest fork="false" todir="${freecol.build.dir}/report/xml">
2007-04-27 19:26:57 +02:00
<fileset dir="test/src" includes="**/*Test.java" />
2013-03-05 10:10:40 +01:00
</batchtest>
2007-09-24 21:15:32 +02:00
-->
2013-03-05 10:10:40 +01:00
<sysproperty key="java.awt.headless" value="true" />
2007-04-27 19:26:57 +02:00
</junit>
2007-04-27 19:26:57 +02:00
<junitreport>
2007-09-24 21:15:32 +02:00
<fileset dir="${freecol.build.dir}/report/xml">
2007-04-27 19:26:57 +02:00
<include name="TEST-*.xml"/>
</fileset>
2007-09-24 21:15:32 +02:00
<report todir="${freecol.build.dir}/report" />
2007-04-27 19:26:57 +02:00
</junitreport>
2013-03-05 10:10:40 +01:00
<echo message="For detailed results of the test run see: ${freecol.build.dir}/report/index.html"/>
2013-03-05 10:10:40 +01:00
<fail if="error.junit" message="Automated Unit Tests failed."/>
2007-04-27 19:26:57 +02:00
</target>
<!-- Run full unit test suite and fail on errors, use brief format for CI -->
<target name="testci" depends="build-unit-tests" unless="skip.dist.test"
description="Runs all unit tests for CI">
<delete dir="${freecol.build.dir}/report" />
<mkdir dir="${freecol.build.dir}/report"/>
<junit printsummary="on" errorProperty="error.junit"
failureProperty="error.junit" fork="yes" maxmemory="128M">
<classpath refid="test.run.classpath"/>
<formatter type="brief" usefile="false" />
<formatter type="plain" />
<sysproperty key="java.awt.headless" value="true" />
<test todir="${freecol.build.dir}/report"
name="net.sf.freecol.AllTests" fork="yes"/>
</junit>
<echo message="For more detailed information about this test run see:"/>
<echo message="${freecol.build.dir}/report/TEST-net.sf.freecol.AllTests.txt"/>
<fail if="error.junit" message="Automated Unit Tests failed."/>
</target>
2007-04-27 19:26:57 +02:00
<target name="build-unit-tests" depends="build">
<depend srcDir="test/src" destDir="${freecol.build.dir}"
cache="${freecol.build.dir}" />
2014-11-26 01:21:19 +01:00
<javac srcdir="test/src"
destdir="${freecol.build.dir}"
classpathref="test.build.classpath"
debug="on"
optimize="on"
deprecation="off"
source="${java.target.version}"
target="${java.target.version}"
includeantruntime="false">
<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-Xlint:deprecation"/>
</javac>
2007-04-27 19:26:57 +02:00
</target>
2008-10-05 12:13:06 +02:00
<target name="validate" description="Validates the specification.">
2013-03-05 10:10:40 +01:00
<echo message="Validating freecol/specification.xml."/>
<schemavalidate noNamespaceFile="schema/specification-schema.xsd"
file="${freecol.rules.dir}/freecol/specification.xml">
</schemavalidate>
<echo message="Validating classic/specification.xml."/>
<schemavalidate noNamespaceFile="schema/specification-schema.xsd"
file="${freecol.rules.dir}/classic/specification.xml">
</schemavalidate>
<echo message="Validating testing/specification.xml."/>
<schemavalidate noNamespaceFile="schema/specification-schema.xsd"
file="${freecol.rules.dir}/testing/specification.xml">
</schemavalidate>
2008-10-05 12:13:06 +02:00
</target>
2013-02-10 14:57:47 +01:00
<target name="print-manual" unless="print.manual.is.up.to.date"
2007-04-27 19:26:57 +02:00
description="Creates the printable user guide.">
<delete file="doc/FreeCol.ind" />
<exec executable="pdflatex" dir="doc" >
<arg file="doc/FreeCol.tex"/>
</exec>
<exec executable="makeindex" dir="doc" >
<arg file="doc/FreeCol.idx"/>
</exec>
<exec executable="pdflatex" dir="doc" >
<arg file="doc/FreeCol.tex"/>
</exec>
2013-02-10 14:57:47 +01:00
<property name="print.manual.is.up.to.date" value="true" />
2007-04-27 19:26:57 +02:00
</target>
<target name="print-devmanual" unless="print.devmanual.is.up.to.date"
description="Creates the printable user guide.">
<delete file="doc/developer.ind" />
<exec executable="pdflatex" dir="doc" >
<arg file="doc/developer.tex"/>
</exec>
<exec executable="makeindex" dir="doc" >
<arg file="doc/developer.idx"/>
</exec>
<exec executable="pdflatex" dir="doc" >
<arg file="doc/developer.tex"/>
</exec>
<property name="print.devmanual.is.up.to.date" value="true" />
</target>
<target name="print-manuals" depends="print-manual,print-devmanual"
description="Creates the printable user and developer guides.">
</target>
2013-02-10 14:57:47 +01:00
<target name="online-manual" unless="online.manual.is.up.to.date"
2007-04-27 19:26:57 +02:00
description="Creates the online user guide.">
<delete file="doc/FreeCol.ind" />
<exec executable="htlatex" dir="doc" >
<arg file="doc/FreeCol.tex"/>
</exec>
<exec executable="tex" dir="doc">
<arg line="\def\filename{{FreeCol}{idx}{4dx}{ind}} \input idxmake.4ht" />
</exec>
<exec executable="makeindex" dir="doc" >
<arg file="doc/FreeCol.4dx"/>
</exec>
<exec executable="htlatex" dir="doc" >
<arg file="doc/FreeCol.tex"/>
</exec>
2013-02-10 14:57:47 +01:00
<property name="online.manual.is.up.to.date" value="true" />
2007-04-27 19:26:57 +02:00
</target>
<target name="online-devmanual" unless="online.devmanual.is.up.to.date"
description="Creates the online user guide.">
<delete file="doc/developer.ind" />
<exec executable="htlatex" dir="doc" >
<arg file="doc/developer.tex"/>
</exec>
<exec executable="tex" dir="doc">
<arg line="\def\filename{{developer}{idx}{4dx}{ind}} \input idxmake.4ht" />
</exec>
<exec executable="makeindex" dir="doc" >
<arg file="doc/developer.4dx"/>
</exec>
<exec executable="htlatex" dir="doc" >
<arg file="doc/developer.tex"/>
</exec>
<property name="online.devmanual.is.up.to.date" value="true" />
</target>
<target name="online-manuals" depends="online-manual,online-devmanual"
description="Creates the online user and developer guides.">
</target>
<target name="manual" depends="print-manual,online-manual"
2007-04-27 19:26:57 +02:00
description="Creates the printable and online user guides.">
</target>
<target name="devmanual" depends="print-devmanual,online-devmanual"
description="Creates the printable and online developer guides.">
</target>
<target name="manuals" depends="manual,devmanual"
description="Creates the printable and online user and developer guides.">
</target>
2007-04-27 19:26:57 +02:00
<target name="fixTabsWindows">
<fixcrlf srcdir="${freecol.src.dir}" tab="remove" tablength="4"
2013-03-05 10:10:40 +01:00
includes="**/*.java" eol="crlf"/>
2007-04-27 19:26:57 +02:00
</target>
<target name="fixTabsUnix">
<fixcrlf srcdir="${freecol.src.dir}" tab="remove" tablength="4"
2013-03-05 10:10:40 +01:00
includes="**/*.java" eol="lf"/>
2007-04-27 19:26:57 +02:00
</target>
<!-- Prints a report on certain translations, which you can specify
2013-03-05 10:10:40 +01:00
by setting the localeKey property ("-DlocaleKey=fi", for example),
or all translations. Use "-emacs" in order to suppress extensive
logging. -->
2007-04-27 19:26:57 +02:00
<target name="translation-report" depends="build"
description="Creates report on translations.">
<condition property="localeKey" else="">
<isset property="localeKey" />
</condition>
<java classname="net.sf.freecol.tools.TranslationReport" classpath="build/" >
2013-02-06 07:24:29 +01:00
<arg value="data/strings" />
2007-04-27 19:26:57 +02:00
<arg value="${localeKey}" />
</java>
</target>
2008-01-12 16:35:57 +01:00
2009-07-16 17:07:20 +02:00
<!-- Merges new translations from trunk. You can specify a
2013-03-05 10:10:40 +01:00
particular language by setting the localeKey property
("-DlocaleKey=fi", for example), or all translations. -->
2013-02-06 07:24:29 +01:00
<!-- Now that translations are hosted at translatewiki, we no longer need this.
2009-07-16 17:07:20 +02:00
<target name="merge-translations" depends="build"
description="Merges translations from trunk.">
<condition property="localeKey" else="">
<isset property="localeKey" />
</condition>
<java classname="net.sf.freecol.tools.MergeTranslations" classpath="build/" >
2013-02-06 07:24:29 +01:00
<arg value="../../trunk/data/strings" />
<arg value="data/strings" />
2009-07-16 17:07:20 +02:00
<arg value="${localeKey}" />
</java>
</target>
2013-02-06 07:24:29 +01:00
-->
2009-07-16 17:07:20 +02:00
<!-- Validates a savegame files specified as property file
2013-03-05 10:10:40 +01:00
("-Dsavegame=whatever.fsg", for example). If file is a directory,
all savegame files in that directory will be validated. -->
<target name="validate-savegame" depends="build"
description="Validates a savegame, or directory of savegames.">
<condition property="savegame" else="">
<isset property="savegame" />
</condition>
<java classname="net.sf.freecol.tools.SaveGameValidator"
failonerror="true">
<classpath refid="test.run.classpath"/>
2013-03-05 10:10:40 +01:00
<arg value="${savegame}" />
</java>
</target>
2009-11-01 11:49:25 +01:00
<!-- Creates installer strings. -->
<target name="installer-translations" depends="build"
description="Creates properties files for installer translations.">
2010-06-19 09:43:45 +02:00
<java classname="net.sf.freecol.tools.InstallerTranslations"
classpath="build/" />
2009-11-01 11:49:25 +01:00
</target>
<!-- Creates HTML documentation from specification. -->
<target name="generate-documentation" depends="build"
description="Creates HTML documentation from specification.">
<java classname="net.sf.freecol.tools.GenerateDocumentation"
classpath="build/" fork="true"/>
</target>
<!-- Creates 'freecol.desktop' file. -->
<target name="desktop-entry" depends="build"
description="Creates 'freecol.desktop' file.">
2013-02-06 07:24:29 +01:00
<mkdir dir="${freecol.release.dir}/base/freecol"/>
<java classname="net.sf.freecol.tools.DesktopEntry"
2013-02-06 07:24:29 +01:00
classpath="build/">
2013-03-05 10:10:40 +01:00
<arg value="${freecol.release.dir}/base/freecol/freecol.desktop" />
2013-02-06 07:24:29 +01:00
</java>
</target>
2008-01-12 16:35:57 +01:00
<target name="pmd">
2013-03-05 10:10:40 +01:00
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpath="./pmd-4.1/lib/pmd-4.1.jar"/>
<pmd shortFilenames="true">
<ruleset>basic</ruleset>
<ruleset>imports</ruleset>
<!-- <ruleset>optimizations</ruleset> -->
<ruleset>unusedcode</ruleset>
<formatter type="html" toFile="pmd_report.html"
linkPrefix="http://pmd.sourceforge.net/xref/"/>
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</pmd>
2008-01-12 16:35:57 +01:00
</target>
2008-11-29 10:47:44 +01:00
<target name="prepare-commit"
description="Rebuild from scratch and run all tests."
depends="clean,package,validate,testall"/>
2009-07-19 12:21:08 +02:00
<!-- This is a shortcut for NetBeans, and possibly other IDEs. -->
<target name="run" depends="package" description="Runs the game">
2013-03-05 10:10:40 +01:00
<java jar="FreeCol.jar" fork="true">
<jvmarg value="-Xmx2G" />
2013-03-05 10:10:40 +01:00
</java>
2009-07-19 12:21:08 +02:00
</target>
2008-11-29 10:47:44 +01:00
2009-11-04 18:11:47 +01:00
<target name="cobertura" depends="build">
2013-03-05 10:10:40 +01:00
<property name="cobertura.dir" value="cobertura" />
<path id="cobertura.classpath">
<fileset dir="${cobertura.dir}">
<include name="cobertura.jar" />
<include name="lib/**/*.jar" />
</fileset>
</path>
2009-11-04 18:11:47 +01:00
2013-03-05 10:10:40 +01:00
<taskdef classpathref="cobertura.classpath"
resource="tasks.properties" />
2013-03-05 10:10:40 +01:00
<cobertura-instrument todir="build/instrumented-classes">
<fileset dir="build/net">
<include name="**/*.class"/>
</fileset>
</cobertura-instrument>
2013-03-05 10:10:40 +01:00
<delete dir="${freecol.build.dir}/report" />
<mkdir dir="${freecol.build.dir}/report"/>
<mkdir dir="${freecol.build.dir}/report/xml"/>
2013-03-05 10:10:40 +01:00
<junit printsummary="on" errorproperty="error.junit"
fork="yes" maxmemory="64M">
2013-03-05 10:10:40 +01:00
<classpath location="build/instrumented-classes"/>
<classpath location="build/net"/>
<classpath refid="cobertura.classpath"/>
<classpath refid="test.run.classpath"/>
<formatter type="xml" />
2013-03-05 10:10:40 +01:00
<test todir="${freecol.build.dir}/report/xml"
name="net.sf.freecol.AllTests" fork="yes"/>
<sysproperty key="java.awt.headless" value="true" />
</junit>
2013-03-05 10:10:40 +01:00
<cobertura-report srcdir="${freecol.src.dir}"
destdir="cobertura/report"/>
2009-11-04 18:11:47 +01:00
</target>
2007-04-19 18:29:34 +02:00
</project>