<?xml version="1.0" ?>

<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->

<project name="royaletasks.tests" default="main" basedir=".">

    <pathconvert property="royaletasks.tests" dirsep="/">
        <path location="${basedir}"/>
    </pathconvert>
    

    <property environment="env"/>
	<property file="unittest.properties" />
    <property file="../../../env.properties" />
	<property name="test.timeout" value="3000000" />
	<property name="maxmem" value="512" />
    
    <condition property="GOOG_HOME" value="${env.GOOG_HOME}">
        <and>
            <not>
                <isset property="GOOG_HOME" />
            </not>
            <available file="${env.GOOG_HOME}/closure/goog/base.js" type="file" />
        </and>
    </condition>
    
    <condition property="GOOG_HOME" value="${ROYALE_HOME}/js/lib/google/closure-library">
        <and>
            <not>
                <isset property="GOOG_HOME" />
            </not>
            <available file="${ROYALE_HOME}/js/lib/google/closure-library/closure/goog/base.js" type="file" />
        </and>
    </condition>
		
    <property name="compiler" value="${royaletasks.tests}/../../../compiler-jx"/>
    <condition property="royalesdk" value="${ROYALE_HOME}" else="${env.ROYALE_HOME}">
        <isset property="ROYALE_HOME" />
    </condition>
    <condition property="playerglobal.version" value="${env.PLAYERGLOBAL_VERSION}">
        <isset property="env.PLAYERGLOBAL_VERSION" />
    </condition>
    <property name="playerglobal.version" value="11.1" />
    
    <property name="royaletasks" value="${royaletasks.tests}/../.."/>
    <property name="royale" value="${compiler}"/>

    <path id="lib.path">
        <fileset dir="${royale}/lib" includes="compiler-royaleTasks.jar"/>
        <fileset dir="${royale}/lib" includes="jsc.jar"/>
    </path>
    
    <target name="ant.tests">
        <property name="ROYALE_HOME" value="${royalesdk}"/>
        <property name="ROYALE_COMPILER_HOME" value="${royale}"/>
        <echo message="GOOG_HOME: ${GOOG_HOME}"/>
        <echo>ROYALE_HOME=${royalesdk}</echo>
        <echo>ROYALE_COMPILER_HOME=${ROYALE_COMPILER_HOME}</echo>
        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
        <mxmlc file="${royaletasks.tests}/as/Hello.as"
            output="${royaletasks}/target/junit/Hello.swf"
            compiler.targets="SWF"
            closure-lib="${GOOG_HOME}"
            configname="flex"
            target-player="${playerglobal.version}">
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
        </mxmlc>
        <delete file="${royaletasks}/target/junit/Hello.swf"/>
        <compc output="${royaletasks}/target/junit/Hello.swc" include-classes="Hello"
            compiler.targets="SWF"
            configname="flex"
            target-player="${playerglobal.version}">
            <source-path path-element="${royaletasks.tests}/as"/>
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
        </compc>
        <delete file="${royaletasks}/target/junit/Hello.swc"/>
    </target>

    <target name="main" depends="ant.tests"/>

    <target name="clean">
    </target>

    <target name="wipe" depends="clean">
    </target>

</project>
