a8de5bb789
render sprites and animations anywhere in the frame for those times when you just need to draw outside the lines. The actual MediaOverlay isn't done yet, but all the refactoring to support it is done, so the rest should be easy. In theory this shouldn't break anything (like the Yohoho build), but we're about to find out. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@112 ed5b42cb-e716-0410-a449-f6a68f950b19
266 lines
10 KiB
XML
266 lines
10 KiB
XML
<?xml version="1.0" standalone="yes"?>
|
|
<!-- build configuration -->
|
|
<project name="nenya" default="compile" basedir=".">
|
|
|
|
<!-- import overriding properties -->
|
|
<property file="build.properties"/>
|
|
|
|
<!-- configuration parameters -->
|
|
<property name="app.name" value="nenya"/>
|
|
<property name="deploy.dir" value="dist"/>
|
|
<property name="savedoc.dir" value="docs"/>
|
|
|
|
<!-- derived properties -->
|
|
<property name="javadoc.home" value="${deploy.dir}/docs"/>
|
|
<property name="classes.dir" value="${deploy.dir}/classes"/>
|
|
|
|
<!-- import some targets to enumerate library dependencies -->
|
|
<property name="libs.dir" value="lib"/>
|
|
<import file="libs-incl.xml"/>
|
|
<import file="depends-incl.xml"/>
|
|
|
|
<!-- declare our classpath business -->
|
|
<path id="classpath">
|
|
<pathelement location="${classes.dir}"/>
|
|
<fileset dir="${deploy.dir}/lib" includes="**/*.jar"/>
|
|
</path>
|
|
|
|
<!-- prepares the application directories -->
|
|
<target name="prepare">
|
|
<mkdir dir="${deploy.dir}"/>
|
|
<mkdir dir="${deploy.dir}/lib"/>
|
|
<mkdir dir="${classes.dir}"/>
|
|
<mkdir dir="${classes.dir}/rsrc"/>
|
|
<mkdir dir="${javadoc.home}"/>
|
|
<copy todir="${classes.dir}">
|
|
<fileset dir="src/java" includes="**/*.properties"/>
|
|
<fileset dir="src/java" includes="**/*.tmpl"/>
|
|
</copy>
|
|
<copy todir="${classes.dir}/rsrc">
|
|
<fileset dir="rsrc" includes="**/*"/>
|
|
</copy>
|
|
<copy todir="${deploy.dir}/lib" flatten="true">
|
|
<fileset refid="${app.name}.libs"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- cleans out the intermediate build files -->
|
|
<target name="clean">
|
|
<delete dir="${deploy.dir}/classes"/>
|
|
<delete dir="${deploy.dir}/docs"/>
|
|
<delete failonerror="false"><fileset dir="${deploy.dir}" includes="*.jar"/></delete>
|
|
<ant dir="tests" target="clean"/>
|
|
</target>
|
|
|
|
<!-- wipes the entire build directory clean -->
|
|
<target name="distclean" depends="clean">
|
|
<delete dir="${deploy.dir}"/>
|
|
</target>
|
|
|
|
<!-- build the java class files -->
|
|
<target name="compile" depends="check-available,prepare">
|
|
<javac srcdir="src/java" destdir="${classes.dir}" includeAntRuntime="false"
|
|
debug="on" optimize="{$build.optimize}" deprecation="on"
|
|
source="1.5" target="1.5">
|
|
<classpath refid="classpath"/>
|
|
<exclude name="com/threerings/jme/**" unless="build.jme"/>
|
|
<exclude name="com/threerings/openal/**" unless="build.openal"/>
|
|
<exclude name="com/threerings/**/tools/xml/**" unless="build.xml"/>
|
|
<exclude name="**/OggPlayer.java"/>
|
|
<exclude name="**/ModPlayer.java"/>
|
|
<exclude name="**/MidiPlayer.java"/>
|
|
<exclude name="**/Mp3Player.java"/>
|
|
<compilerarg value="-Xlint"/>
|
|
<compilerarg value="-Xlint:-serial"/>
|
|
<compilerarg value="-Xlint:-unchecked"/> <!-- TODO: fix -->
|
|
</javac>
|
|
</target>
|
|
|
|
<!-- build the native libraries -->
|
|
<target name="ncompile" depends="prepare">
|
|
<echo message="Doing native compilation on ${os.name}..."/>
|
|
<exec os="Linux" dir="src/java/com/threerings/util/keybd/Linux"
|
|
executable="make"><arg line="install"/></exec>
|
|
<exec dir="src/java/com/threerings/util/unsafe/${os.name}"
|
|
executable="make"><arg line="install"/></exec>
|
|
</target>
|
|
|
|
<!-- build the javadoc documentation -->
|
|
<target name="javadoc" depends="prepare">
|
|
<javadoc sourcepath="src/java" packagenames="com.threerings.*"
|
|
destdir="${javadoc.home}" stylesheetfile="docs/stylesheet.css"
|
|
additionalparam="-breakiterator"
|
|
link="http://www.threerings.net/code/nenya/nenya/docs/api">
|
|
<classpath refid="classpath"/>
|
|
<link href="http://java.sun.com/j2se/1.5/docs/api/"/>
|
|
<!-- ant documentation is not available online, sorry kids -->
|
|
<link href="file:///usr/share/doc/ant-doc/javadocs"/>
|
|
<link href="http://samskivert.com/code/samskivert/samskivert/docs/api"/>
|
|
<link href="http://www.jmonkeyengine.com/doc"/>
|
|
</javadoc>
|
|
<copy todir="${javadoc.home}">
|
|
<fileset dir="src/java" includes="**/*.png"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- builds the javadocs and stuffs them in a directory where they -->
|
|
<!-- won't be blown away when we do "clean" next time -->
|
|
<target name="savedoc" depends="javadoc">
|
|
<delete dir="${savedoc.dir}/api"/>
|
|
<copy todir="${savedoc.dir}/api">
|
|
<fileset dir="${javadoc.home}" includes="**/*"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- builds the various tests -->
|
|
<target name="tests">
|
|
<ant dir="tests" target="compile"/>
|
|
</target>
|
|
|
|
<!-- a target for rebuilding everything -->
|
|
<target name="all"
|
|
depends="clean,prepare,compile,ncompile,javadoc,tests,dist"/>
|
|
|
|
<!-- builds our distribution files (war and jar) -->
|
|
<target name="dist" depends="prepare,compile,ncompile,tests">
|
|
<!-- build our various jar files -->
|
|
<jar destfile="${deploy.dir}/${app.name}-rsrc.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/resource/**"/>
|
|
</jar>
|
|
<jar destfile="${deploy.dir}/${app.name}-media.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/geom/**"/>
|
|
<fileset dir="${classes.dir}" includes="com/threerings/media/**"/>
|
|
<fileset dir="${classes.dir}" includes="com/threerings/tools/**"/>
|
|
<fileset dir="${classes.dir}" includes="com/threerings/util/**"/>
|
|
<fileset dir="${classes.dir}" includes="com/threerings/NenyaLog*"/>
|
|
</jar>
|
|
<jar destfile="${deploy.dir}/${app.name}-miso.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/miso/**"/>
|
|
<fileset dir="${classes.dir}" includes="rsrc/**/miso/**"/>
|
|
</jar>
|
|
<jar destfile="${deploy.dir}/${app.name}-cast.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/cast/**"/>
|
|
<fileset dir="${classes.dir}" includes="rsrc/**/cast/**"/>
|
|
</jar>
|
|
<jar destfile="${deploy.dir}/${app.name}-jme.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/jme/**"/>
|
|
<fileset dir="${classes.dir}" includes="rsrc/**/jme/**"/>
|
|
</jar>
|
|
<jar destfile="${deploy.dir}/${app.name}-openal.jar">
|
|
<fileset dir="${classes.dir}" includes="com/threerings/openal/**"/>
|
|
</jar>
|
|
</target>
|
|
|
|
<!-- a helper task for 'retro' -->
|
|
<target name="vweave">
|
|
<!-- various bits used by the retroweaver tasks -->
|
|
<taskdef name="weave" classpathref="classpath"
|
|
classname="com.rc.retroweaver.ant.RetroWeaverTask"/>
|
|
<property name="inpre" value="${deploy.dir}/${app.name}"/>
|
|
<property name="outpre" value="${deploy.dir}/retro/${app.name}"/>
|
|
<path id="retrocp">
|
|
<pathelement location="/usr/local/jdk1.4/jre/lib/rt.jar"/>
|
|
<fileset dir="lib" includes="**/*.jar"/>
|
|
<fileset dir="${deploy.dir}/retro" includes="*.jar"/>
|
|
</path>
|
|
<weave inputjar="${inpre}-${which}.jar" outputjar="${outpre}-${which}.jar"
|
|
failonerror="true">
|
|
<classpath refid="retrocp"/>
|
|
</weave>
|
|
</target>
|
|
|
|
<!-- converts our 1.5 code to a 1.4 compatible format -->
|
|
<target name="retro" depends="dist">
|
|
<mkdir dir="${deploy.dir}/retro"/>
|
|
|
|
<!-- we weave everything a first time without verification so that -->
|
|
<!-- interdependencies will resolve the second time -->
|
|
<weave inputjar="${inpre}-cast.jar" outputjar="${outpre}-cast.jar"/>
|
|
<weave inputjar="${inpre}-micasa.jar" outputjar="${outpre}-micasa.jar"/>
|
|
<weave inputjar="${inpre}-miso.jar" outputjar="${outpre}-miso.jar"/>
|
|
<weave inputjar="${inpre}-media.jar" outputjar="${outpre}-media.jar"/>
|
|
<weave inputjar="${inpre}-rsrc.jar" outputjar="${outpre}-rsrc.jar"/>
|
|
|
|
<!-- now weave again with the verifier to check for unweavable 1.5isms -->
|
|
<antcall target="vweave"><param name="which" value="cast"/></antcall>
|
|
<antcall target="vweave"><param name="which" value="micasa"/></antcall>
|
|
<antcall target="vweave"><param name="which" value="miso"/></antcall>
|
|
<antcall target="vweave"><param name="which" value="media"/></antcall>
|
|
<antcall target="vweave"><param name="which" value="rsrc"/></antcall>
|
|
</target>
|
|
|
|
<!-- generate a class hierarchy diagram -->
|
|
<target name="hierviz" depends="prepare,compile">
|
|
<taskdef name="viztool" classname="com.samskivert.viztool.DriverTask"/>
|
|
<viztool visualizer="com.samskivert.viztool.hierarchy.HierarchyVisualizer"
|
|
pkgroot="com.threerings.miso" classes="com.threerings.miso.*"
|
|
output="hierviz.ps">
|
|
<classpath refid="classpath"/>
|
|
</viztool>
|
|
</target>
|
|
|
|
<!-- generate a class hierarchy diagram -->
|
|
<target name="sumgen" depends="prepare,compile">
|
|
<taskdef name="viztool" classname="com.samskivert.viztool.DriverTask"/>
|
|
<viztool visualizer="com.samskivert.viztool.summary.SummaryVisualizer"
|
|
pkgroot="com.threerings.miso"
|
|
classes="com.threerings.miso.*Scene.*"
|
|
output="summary.ps">
|
|
<classpath refid="base.classpath"/>
|
|
</viztool>
|
|
</target>
|
|
|
|
<!-- creates a tarball and zipfile for source distribution -->
|
|
<target name="distrib">
|
|
<echo message="You may want to stop and run 'ant savedoc' first."/>
|
|
<echo message="Building tar.gz distribution..."/>
|
|
<tar destfile="../nenya-snapshot.tar.gz" compression="gzip">
|
|
<tarfileset dir=".." mode="0775" dirmode="0775">
|
|
<include name="nenya/bin/**"/>
|
|
<include name="nenya/tests/bin/**"/>
|
|
<exclude name="**/.svn"/>
|
|
</tarfileset>
|
|
<tarfileset dir=".." mode="0664" dirmode="0775">
|
|
<include name="nenya/**"/>
|
|
<exclude name="**/.svn"/>
|
|
<exclude name="nenya/tests/dist/**"/>
|
|
<exclude name="nenya/dist/**"/>
|
|
<exclude name="nenya/code/**"/>
|
|
<exclude name="nenya/nenya-*.*"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<echo message="Building zip distribution..."/>
|
|
<zip destfile="../nenya-snapshot.zip">
|
|
<fileset dir="..">
|
|
<include name="nenya/**"/>
|
|
<exclude name="**/.svn"/>
|
|
<exclude name="nenya/tests/dist/**"/>
|
|
<exclude name="nenya/dist/**"/>
|
|
<exclude name="nenya/code/**"/>
|
|
<exclude name="nenya/nenya-*.*"/>
|
|
</fileset>
|
|
</zip>
|
|
</target>
|
|
|
|
<!-- creates a zipfile with our source distribution -->
|
|
<target name="snapshot">
|
|
<echo message="You may want to stop and run 'ant savedoc' first."/>
|
|
<delete file="${app.name}-snapshot.zip"/>
|
|
<mkdir dir="../snapshot/${app.name}"/>
|
|
<copy todir="../snapshot/${app.name}">
|
|
<fileset dir=".">
|
|
<include name="**"/>
|
|
<exclude name="dist/**"/>
|
|
<exclude name="tests/dist/**"/>
|
|
<exclude name="${app.name}-*.zip"/>
|
|
</fileset>
|
|
</copy>
|
|
<copy todir="../snapshot/${app.name}/lib">
|
|
<fileset dir="dist/lib" includes="*.jar"/>
|
|
</copy>
|
|
<zip destfile="${app.name}-snapshot.zip" basedir="../snapshot"/>
|
|
<delete dir="../snapshot"/>
|
|
</target>
|
|
|
|
</project>
|