blob: c775bbcbf016f54d3ebbd7620b07078dcb57c4a0 [file] [log] [blame] [raw]
<!-- vim: set noexpandtab tabstop=4 shiftwidth=4: -->
<project name="XRay" default="dist" basedir=".">
<description>
Minecraft X-Ray
</description>
<!-- Project attributes -->
<property name="maint_branch" value="9"/>
<property name="export_base" value="minecraft_xray_2.7_mb_${maint_branch}"/>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="debugbuild" location="debugbuild"/>
<property name="dist_base" location="dist"/>
<property name="dist" location="${dist_base}/${export_base}"/>
<property name="dist_src" location="${dist_base}/${export_base}_src"/>
<!-- Would be nice if ant's "tar" task understood executable bits -->
<patternset id="all.files">
<include name="${export_base}/**"/>
</patternset>
<selector id="executable.files">
<or>
<filename name="${export_base}/minecraft_xray_osx.command" />
<filename name="${export_base}/minecraft_xray.sh" />
</or>
</selector>
<!-- JSmoothGen, for building the Windows EXE -->
<taskdef name="jsmoothgen"
classname="net.charabia.jsmoothgen.ant.JSmoothGen"
classpath="build-lib/jsmoothgen-ant.jar" />
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
<mkdir dir="${debugbuild}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}">
<compilerarg value="-Xlint:unchecked"/>
<classpath>
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
<target name="debugcompile" depends="init"
description="compile the source in debug mode" >
<!-- Compile the java code from ${src} into ${debugbuild} -->
<javac srcdir="${src}" destdir="${debugbuild}" debug="true">
<compilerarg value="-Xlint:unchecked"/>
<classpath>
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
<target name="run" depends="debugcompile"
description="run the application (uses the debugging build)" >
<!-- Run our compiled sourcecode -->
<java fork="true" classname="com.apocalyptech.minecraft.xray.XRay">
<classpath>
<pathelement path="${debugbuild}" />
<pathelement location="lib/AppleJavaExtensions.jar" />
<pathelement location="lib/jinput.jar" />
<pathelement location="lib/lwjgl.jar" />
<pathelement location="lib/lwjgl_test.jar" />
<pathelement location="lib/lwjgl_util.jar" />
<pathelement location="lib/lwjgl_util_applet.jar" />
<pathelement location="lib/lzma.jar" />
</classpath>
<jvmarg value="-Xms256m" />
<jvmarg value="-Xmx1024m" />
<jvmarg value="-Djava.library.path=lib/native" />
</java>
</target>
<target name="prepare_distdir" depends="compile"
description="prepares the distribution directories for release" >
<!-- Create the distribution directories -->
<mkdir dir="${dist}"/>
<mkdir dir="${dist_src}"/>
<!-- Put everything in ${build} into xray.jar file -->
<jar jarfile="${dist}/xray.jar" basedir="${build}"/>
<!-- Dump all our support libraries, launchers, etc in the distdir -->
<copy todir="${dist}">
<fileset dir="lib">
<include name="*.jar" />
</fileset>
<fileset dir="lib/native">
<include name="*.*" />
</fileset>
<fileset dir="support">
<include name="*.*" />
</fileset>
<fileset dir=".">
<include name="Changelog.txt" />
<include name="BUILDING.txt" />
<include name="TODO.txt" />
<include name="README.txt" />
<include name="COPYING.txt" />
<include name="COPYING-lwjgl.txt" />
<include name="COPYING-jsmooth.txt" />
</fileset>
</copy>
<!-- Mark the UNIXy ones as executable -->
<chmod perm="a+x">
<fileset dir="${dist}">
<include name="minecraft_xray_osx.command" />
<include name="minecraft_xray.sh" />
</fileset>
</chmod>
<!-- While we're at it, archive the source dir in there too. -->
<mkdir dir="${dist}/src"/>
<copy todir="${dist}/src">
<fileset dir=".">
<include name="**/*" />
<exclude name="bin/" />
<exclude name="build/" />
<exclude name="debugbuild/" />
<exclude name="dist/" />
<exclude name=".git/" />
<exclude name=".gitignore" />
</fileset>
</copy>
<!-- Now copy sources over to the source-only distro -->
<copy todir="${dist_src}">
<fileset dir="${dist}/src">
<include name="**/*" />
<exclude name="lib/" />
<exclude name="build-lib/" />
</fileset>
</copy>
</target>
<target name="jsmooth" depends="prepare_distdir">
<jsmoothgen project="support/xray.jsmooth"
skeletonroot="build-lib/jsmoothgen-skeletons" />
<move todir="${dist}">
<fileset dir="support">
<include name="minecraft_xray.exe" />
</fileset>
</move>
</target>
<target name="dist" depends="jsmooth"
description="generate the distribution" >
<!-- Create our zipfiles, both "binary" and source. -->
<zip destfile="${dist_base}/${export_base}.zip" basedir="${dist_base}" includes="${export_base}/"/>
<zip destfile="${dist_base}/${export_base}_src.zip" basedir="${dist_base}" includes="${export_base}_src/"/>
<tar destfile="${dist_base}/${export_base}.tbz2" compression="bzip2">
<tarfileset dir="${dist_base}" filemode="755">
<patternset refid="all.files" />
<selector refid="executable.files" />
</tarfileset>
<tarfileset dir="${dist_base}">
<patternset refid="all.files" />
<not>
<selector refid="executable.files" />
</not>
</tarfileset>
</tar>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete file="${dist_base}/${export_base}.zip"/>
<delete file="${dist_base}/${export_base}.tbz2"/>
<delete file="${dist_base}/${export_base}_src.zip"/>
<delete dir="${build}"/>
<delete dir="${debugbuild}"/>
<delete dir="${dist}"/>
<delete dir="${dist_src}"/>
</target>
</project>