<?xml version="1.0" encoding="UTF-8"?>

<project name="jME3-SDK" default="default" basedir=".">
    <description>Builds, tests, and runs the jMonkeyEngine3 SDK.</description>
    <fail message="Please build using Ant 1.7.1 or higher.">
        <condition>
            <not>
                <antversion atleast="1.7.1"/>
            </not>
        </condition>
    </fail>
    
    <target name="default" depends="zip"/>

    <target name="build" description="Builds the complete SDK" depends="-check-platform, -update-sdk-platform-config">
        <ant dir="engine" target="update-sdk"/>
        <ant dir="sdk" target="zip-templates"/>
        <ant dir="sdk" target="build"/>
    </target>

    <target name="build-engine" description="Builds the engine only">
        <ant dir="engine" target="clean"/>
        <ant dir="engine" target="jar"/>
    </target>

    <target name="clean" description="Clean all build products">
        <ant dir="engine" target="clean"/>
        <ant dir="sdk" target="clean"/>
    </target>

    <target name="run" description="Runs the SDK" depends="build">
        <ant dir="sdk" target="run"/>
    </target>

    <target name="zip" description="Builds the complete SDK and packs it as a ZIP file" depends="build">
        <ant dir="sdk" target="build-zip"/>
        <move file="sdk/dist/jmonkeyplatform.zip" tofile="./jME3-SDK.zip"/>
    </target>

    <target name="update-platform" description="Updates the base platform to the latest available build" depends="-remove-platform,-check-platform"/>

    <target name="hudson-nightly" depends="-update-platform-hudson">
        <ant dir="engine" target="deploy-hudson"/>
        <ant dir="engine" target="hudson-update-sdk"/>
        <ant dir="sdk" target="hudson-nightly"/>
    </target>

    <target name="hudson-stable" depends="-update-platform-hudson">
        <ant dir="engine" target="dist"/>
        <ant dir="engine" target="hudson-update-sdk"/>
        <ant dir="sdk" target="hudson-nightly"/>
    </target>

    <target name="-update-platform-hudson" description="Updates the base platform to the latest available build" depends="-remove-platform">
        <copy file="/var/www/com/platform/base/alpha/platform-base.zip" todir="./"/>
        <unzip src="platform-base.zip" dest="./"/>
        <antcall target="-update-sdk-platform-config"/>
        <delete file="platform-base.zip"/>
    </target>

    <target name="-check-platform" depends="-check-platform-present" unless="platform.present">
        <echo message="Downloading base platform, this only has to be done once."/>
        <!--get src="http://jmonkeyengine.googlecode.com/files/platform-base.zip" dest="./" skipexisting="true"/-->
        <get src="http://jmonkeyengine.com/platform/base/alpha/platform-base.zip" dest="./" skipexisting="true"/>
        <unzip src="platform-base.zip" dest="./"/>
        <antcall target="-update-sdk-platform-config"/>
        <delete file="platform-base.zip"/>
    </target>

    <target name="-check-platform-present">
        <available file="netbeans" property="platform.present"/>
    </target>

    <target name="-remove-platform">
        <delete dir="netbeans" failonerror="false"/>
    </target>

    <target name="-update-sdk-platform-config">
        <property name="nbplatform.dir" location="netbeans"/>
        <mkdir dir="sdk/nbproject/private"/>
        <echo file="sdk/nbproject/private/platform-private.properties"
              message="nbplatform.default.netbeans.dest.dir=${nbplatform.dir}&#xD;&#xA;"/>
        <echo file="sdk/nbproject/private/platform-private.properties"
              message="nbplatform.default.harness.dir=${nbplatform.dir}${file.separator}harness&#xD;&#xA;" append="true"/>
        <replace file="sdk/nbproject/private/platform-private.properties" token="\" value="\\"/>
    </target>
    
    <target name="update-sdk-platform-config" depends="-update-sdk-platform-config"/>

</project>