mirror of https://github.com/FreeCol/freecol.git
Added MacOS package by Tobias Bender.
This commit is contained in:
parent
86dcaca3b3
commit
2781fe98c0
Binary file not shown.
230
build.xml
230
build.xml
|
@ -18,18 +18,50 @@
|
|||
<fileset dir="test/lib" includes="*.jar" />
|
||||
</path>
|
||||
|
||||
|
||||
|
||||
<condition property="isOsUnixLike">
|
||||
<os family="unix" />
|
||||
</condition>
|
||||
|
||||
|
||||
|
||||
<!-- TASK DEFINITIONS -->
|
||||
<taskdef name="jsmoothgen"
|
||||
classname="net.charabia.jsmoothgen.ant.JSmoothGen"
|
||||
classpath="${freecol.build.dir}/jars/jsmoothgen-ant.jar"
|
||||
/>
|
||||
<!--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/
|
||||
Download and place jarbundler.jar into ${freecol.build.dir}/jars-->
|
||||
<taskdef name="jarbundler"
|
||||
classname="net.sourceforge.jarbundler.JarBundler"
|
||||
classpath="${freecol.build.dir}/jars/jarbundler.jar"
|
||||
/>
|
||||
|
||||
<taskdef name="izpack"
|
||||
classname="com.izforge.izpack.ant.IzPackTask"
|
||||
classpath="${freecol.build.dir}/jars/standalone-compiler.jar"
|
||||
/>
|
||||
|
||||
<!--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/
|
||||
Download and place jarbundler.jar into ${freecol.build.dir}/jars-->
|
||||
<taskdef name="jarbundler"
|
||||
classname="net.sourceforge.jarbundler.JarBundler"
|
||||
classpath="${freecol.build.dir}/jars/jarbundler.jar"
|
||||
/>
|
||||
|
||||
<!--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/
|
||||
Download and place jarbundler.jar into ${freecol.build.dir}/jars-->
|
||||
<taskdef name="jarbundler"
|
||||
classname="net.sourceforge.jarbundler.JarBundler"
|
||||
classpath="${freecol.build.dir}/jars/jarbundler.jar"
|
||||
/>
|
||||
|
||||
<target name="init" unless="TSTAMP">
|
||||
<tstamp/>
|
||||
</target>
|
||||
|
@ -79,6 +111,7 @@
|
|||
<target name="package" depends="init,build" description="Compiles the source files and creates a JAR-file.">
|
||||
<jar jarfile="${freecol.jar.file}"
|
||||
basedir="${freecol.build.dir}"
|
||||
|
||||
manifest="${basedir}/src/MANIFEST.MF"
|
||||
includes="net/**, org/**"
|
||||
excludes="**/CVS/**, **/metaserver/**"
|
||||
|
@ -93,6 +126,7 @@
|
|||
manifest="${basedir}/src/MANIFEST.MF"
|
||||
includes="net/**, org/**"
|
||||
excludes="**/CVS/**"
|
||||
|
||||
/>
|
||||
</target>
|
||||
|
||||
|
@ -102,6 +136,7 @@
|
|||
"dist" directory.
|
||||
-->
|
||||
<target name="dist" description="Creates archives and installers for distribution.">
|
||||
|
||||
<input message="Please specify the release version (x.y.z): " addproperty="freecol.version" defaultvalue="custom_build" />
|
||||
<property name="freecol.release.name" value="${freecol.name}-${freecol.version}"/>
|
||||
|
||||
|
@ -160,6 +195,10 @@
|
|||
<jsmoothgen project="${freecol.build.dir}/uninstaller.jsmooth" skeletonroot="${freecol.build.dir}/skeletons"/>
|
||||
<move todir="${freecol.release.dir}/${freecol.name}/Uninstaller">
|
||||
<fileset dir="${freecol.build.dir}" includes="uninstaller.exe"/>
|
||||
<antcall target="macJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundleOnWindows"/>
|
||||
|
||||
</move>
|
||||
|
||||
<izpack input="${freecol.build.dir}/installer-tmp.xml"
|
||||
|
@ -167,6 +206,67 @@
|
|||
basedir="${freecol.release.dir}/${freecol.name}"
|
||||
izpackdir="${freecol.build.dir}"
|
||||
/>
|
||||
<target name="macJavaBundle" description="Buils a doubleclickable application bundle running on Mac os X">
|
||||
<!-- Mac OS X -->
|
||||
<jarbundler dir="${freecol.release.dir}"
|
||||
name="FreeCol"
|
||||
mainclass="net.sf.freecol.FreeCol"
|
||||
version="${freecol.version}"
|
||||
vmoptions="-Xmx256M"
|
||||
jvmversion="1.5+"
|
||||
arguments="--windowed --freecol-data FreeCol.app/Contents/Resources/"
|
||||
stubfile="${freecol.build.dir}/skeletons/FreeCol"
|
||||
icon="${basedir}/FreeCol.icns">
|
||||
<!--
|
||||
TODO: Where should I place the icon file?
|
||||
Replace the value of the icon-attribute with the future icon path
|
||||
-->
|
||||
<jarfilelist dir="${basedir}" files="FreeCol.jar" />
|
||||
|
||||
<jarfileset dir="${basedir}/jars/">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/CVS" />
|
||||
</jarfileset>
|
||||
|
||||
<resourcefileset dir="${basedir}/data">
|
||||
<exclude name="**/CVS" />
|
||||
</resourcefileset>
|
||||
</jarbundler>
|
||||
</target>
|
||||
|
||||
<target name="tarMacJavaBundle" if="isOsUnixLike" depends="macJavaBundle">
|
||||
<delete file="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
<symlink link="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol" resource="/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub"/>
|
||||
|
||||
<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>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/FreeCol.app"/>
|
||||
</target>
|
||||
|
||||
<target name="tarMacJavaBundleOnWindows" depends="macJavaBundle" unless="isOsUnixLike">
|
||||
<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 ... "/>
|
||||
<tar destfile="${freecol.release.dir}/${freecol.release.name}-mac.tar.bz2" compression="bzip2">
|
||||
<tarfileset dir="${freecol.release.dir}" mode="755"
|
||||
includes="FreeCol.app/Contents/MacOS/FreeCol"
|
||||
excludes="**/freecol*"
|
||||
followsymlinks="false"
|
||||
/>
|
||||
<tarfileset followsymlinks="false" dir="${freecol.release.dir}">
|
||||
<include name="FreeCol.app/**"/>
|
||||
<exclude name="**/freecol*"/>
|
||||
<exclude name="FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
</tarfileset>
|
||||
</tar>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/FreeCol.app"/>
|
||||
</target>
|
||||
|
||||
<delete quiet="true" file="${freecol.build.dir}/installer-tmp.xml"/>
|
||||
|
||||
<copy todir="${freecol.release.dir}">
|
||||
|
@ -176,15 +276,82 @@
|
|||
token="%ant:freecol.release.name%"
|
||||
value="${freecol.release.name}"
|
||||
/>
|
||||
<antcall target="macJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundleOnWindows"/>
|
||||
|
||||
<replace file="${freecol.release.dir}/installer.jsmooth"
|
||||
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"/>
|
||||
|
||||
<target name="macJavaBundle" description="Buils a doubleclickable application bundle running on Mac os X">
|
||||
<!-- Mac OS X -->
|
||||
<jarbundler dir="${freecol.release.dir}"
|
||||
name="FreeCol"
|
||||
mainclass="net.sf.freecol.FreeCol"
|
||||
version="${freecol.version}"
|
||||
vmoptions="-Xmx256M"
|
||||
jvmversion="1.5+"
|
||||
arguments="--windowed --freecol-data FreeCol.app/Contents/Resources/"
|
||||
stubfile="${freecol.build.dir}/skeletons/FreeCol"
|
||||
icon="${basedir}/FreeCol.icns">
|
||||
<!--
|
||||
TODO: Where should I place the icon file?
|
||||
Replace the value of the icon-attribute with the future icon path
|
||||
-->
|
||||
<jarfilelist dir="${basedir}" files="FreeCol.jar" />
|
||||
|
||||
<jarfileset dir="${basedir}/jars/">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/CVS" />
|
||||
</jarfileset>
|
||||
|
||||
<resourcefileset dir="${basedir}/data">
|
||||
<exclude name="**/CVS" />
|
||||
</resourcefileset>
|
||||
</jarbundler>
|
||||
</target>
|
||||
|
||||
<target name="tarMacJavaBundle" if="isOsUnixLike" depends="macJavaBundle">
|
||||
<delete file="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
<symlink link="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol" resource="/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub"/>
|
||||
|
||||
<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>
|
||||
|
||||
<target name="tarMacJavaBundleOnWindows" depends="macJavaBundle" unless="isOsUnixLike">
|
||||
<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 ... "/>
|
||||
<tar destfile="${freecol.release.dir}/${freecol.release.name}-mac.tar.bz2" compression="bzip2">
|
||||
<tarfileset dir="${freecol.release.dir}" mode="755"
|
||||
includes="FreeCol.app/Contents/MacOS/FreeCol"
|
||||
excludes="**/freecol*"
|
||||
followsymlinks="false"
|
||||
/>
|
||||
<tarfileset followsymlinks="false" dir="${freecol.release.dir}">
|
||||
<include name="FreeCol.app/**"/>
|
||||
<exclude name="**/freecol*"/>
|
||||
<exclude name="FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
</tarfileset>
|
||||
</tar>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/FreeCol.app"/>
|
||||
</target>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/${freecol.name}"/>
|
||||
<delete quiet="true" file="${freecol.release.dir}/installer.jsmooth"/>
|
||||
|
||||
<antcall target="macJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundle"/>
|
||||
<antcall target="tarMacJavaBundleOnWindows"/>
|
||||
|
||||
<echo message="" />
|
||||
<echo message="-------------------------------------------------"/>
|
||||
<echo message="Distribution files created:"/>
|
||||
|
@ -192,6 +359,67 @@
|
|||
<echo message="-------------------------------------------------"/>
|
||||
</target>
|
||||
|
||||
<target name="macJavaBundle" description="Buils a doubleclickable application bundle running on Mac os X">
|
||||
<!-- Mac OS X -->
|
||||
<jarbundler dir="${freecol.release.dir}"
|
||||
name="FreeCol"
|
||||
mainclass="net.sf.freecol.FreeCol"
|
||||
version="${freecol.version}"
|
||||
vmoptions="-Xmx256M"
|
||||
jvmversion="1.5+"
|
||||
arguments="--windowed --freecol-data FreeCol.app/Contents/Resources/"
|
||||
stubfile="${freecol.build.dir}/skeletons/FreeCol"
|
||||
icon="${basedir}/FreeCol.icns">
|
||||
<!--
|
||||
TODO: Where should I place the icon file?
|
||||
Replace the value of the icon-attribute with the future icon path
|
||||
-->
|
||||
<jarfilelist dir="${basedir}" files="FreeCol.jar" />
|
||||
|
||||
<jarfileset dir="${basedir}/jars/">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/CVS" />
|
||||
</jarfileset>
|
||||
|
||||
<resourcefileset dir="${basedir}/data">
|
||||
<exclude name="**/CVS" />
|
||||
</resourcefileset>
|
||||
</jarbundler>
|
||||
</target>
|
||||
|
||||
<target name="tarMacJavaBundle" if="isOsUnixLike" depends="macJavaBundle">
|
||||
<delete file="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
<symlink link="${freecol.release.dir}/FreeCol.app/Contents/MacOS/FreeCol" resource="/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub"/>
|
||||
|
||||
<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>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/FreeCol.app"/>
|
||||
</target>
|
||||
|
||||
<target name="tarMacJavaBundleOnWindows" depends="macJavaBundle" unless="isOsUnixLike">
|
||||
<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 ... "/>
|
||||
<tar destfile="${freecol.release.dir}/${freecol.release.name}-mac.tar.bz2" compression="bzip2">
|
||||
<tarfileset dir="${freecol.release.dir}" mode="755"
|
||||
includes="FreeCol.app/Contents/MacOS/FreeCol"
|
||||
excludes="**/freecol*"
|
||||
followsymlinks="false"
|
||||
/>
|
||||
<tarfileset followsymlinks="false" dir="${freecol.release.dir}">
|
||||
<include name="FreeCol.app/**"/>
|
||||
<exclude name="**/freecol*"/>
|
||||
<exclude name="FreeCol.app/Contents/MacOS/FreeCol"/>
|
||||
</tarfileset>
|
||||
</tar>
|
||||
|
||||
<delete quiet="true" dir="${freecol.release.dir}/FreeCol.app"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Cleans the directories by removing auto-generated files. -->
|
||||
<target name="clean" depends="init" description="Cleans the directories by removing auto-generated files.">
|
||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue