<?xml version="1.0"?>
<project name="Robocode" default="codesize" basedir=".">
    <target name="init">
        <property name="AUTHOR" value="Your Name Here"/>
        <property name="ROBOT_NAME" value="YourRobotName"/>
        <property name="ROBOT_PACKAGE" value="YourPackage"/>
	<property name="ROBOT_VERSION" value="0.1"/>
	<property name="ROBOT_DESCRIPTION" value="A description of your robot."/>
        <property name="ROBOCODE_DIR" value="/path/to/your/robocode/directory"/>
    </target>

    <target name="extra_properties" depends="init">
        <property name="PROPERTIES_FILE" value="${ROBOT_NAME}.properties"/>
        <property name="ROBOTS_DIR" value="${ROBOCODE_DIR}/robots"/>
    </target>

    <target name="properties_file" depends="extra_properties">
        <propertyfile file="${PROPERTIES_FILE}" comment="My properties file">
            <entry key="robot.description" value="${ROBOT_DESCRIPTION}"/>
            <entry key="robot.java.source.included" value="true"/>
            <entry key="robocode.version" value="1.0.7"/>
            <entry key="robot.version" value="${ROBOT_VERSION}"/>
            <entry key="robot.author.name" value="${AUTHOR}"/>
            <entry key="robot.classname" value="${ROBOT_PACKAGE}.${ROBOT_NAME}"/>
            <entry key="robot.name" value="${ROBOT_NAME}"/>
        </propertyfile>

        <property file="${PROPERTIES_FILE}" description="Properties file"/>
        <property name="JAR_FILE" value="${robot.classname}_${robot.version}.jar"/>
        <property name="COMPILE_WITH_DEBUG" value="off"/>
        <property name="VERBOSE_LEVEL" value="1"/>
        <property name="CLASSNAME" value="${ROBOT_NAME}"/>
        <property name="CLASSPATH" value="./classes;${ROBOCODE_DIR}/robocode.jar"/>
    </target>

    <target name="compile" depends="properties_file" description="Compile the Java classes">
        <javac srcdir="." classpath="${CLASSPATH}" debug="${COMPILE_WITH_DEBUG}" includes="*.java"/>    </target>

    <target name="buildjar" depends="compile" description="Construct the Jar file.">
        <delete dir="${ROBOT_PACKAGE}"/>
        <copy overwrite="true" todir="${ROBOT_PACKAGE}">
            <fileset dir="." includes="*.class"/>
            <fileset dir="." includes="*.java"/>
            <fileset dir="." includes="${PROPERTIES_FILE}"/>
        </copy>
        <zip destfile="${JAR_FILE}">
            <zipfileset dir="${ROBOT_PACKAGE}" includes="*" prefix="${ROBOT_PACKAGE}"/>
        </zip>
    </target>

    <target name="codesize" depends="buildjar" description="Calculate codesize.">
        <exec executable="java">
            <arg line="-jar" />
            <arg line="${ROBOCODE_DIR}/codesize.jar" />
            <arg line="${JAR_FILE}" />
        </exec>
    </target>

    <target name="install" depends="buildjar" description="Install the Jar.">
        <copy file="${JAR_FILE}" overwrite="true" todir="${ROBOTS_DIR}"/>
    </target>

    <target name="clean" depends="extra_properties" description="Cleanup.">
    	<delete includeemptydirs="true">
            <fileset dir="." includes="*.class"/>
            <fileset dir="." includes="*.jar"/>
            <fileset dir="." includes="${PROPERTIES_FILE}"/>
	    <fileset dir="${ROBOT_PACKAGE}"/>
        </delete>
    </target>
</project>
