<?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="build_example" basedir=".">

	<echo message="FLEXJS_HOME: ${FLEXJS_HOME}"/>
	
    <condition property="FALCON_HOME" value="${env.FALCON_HOME}">
        <and>
            <not>
                <isset property="FALCON_HOME" />
            </not>
            <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar" type="file" />
        </and>
    </condition>

    <condition property="FALCON_HOME" value="${FLEXJS_HOME}/../flex-falcon/compiler">
        <and>
            <not>
                <isset property="FALCON_HOME" />
            </not>
            <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar" type="file" />
        </and>
    </condition>

    <condition property="FALCON_HOME" value="${FLEXJS_HOME}">
        <and>
            <not>
                <isset property="FALCON_HOME" />
            </not>
            <available file="${FLEXJS_HOME}/lib/falcon-mxmlc.jar" type="file" />
        </and>
    </condition>

    <condition property="FALCONJX_HOME" value="${env.FALCONJX_HOME}">
        <and>
            <not>
                <isset property="FALCONJX_HOME" />
            </not>
            <available file="${env.FALCONJX_HOME}/lib/jsc.jar" type="file" />
        </and>
    </condition>

    <condition property="FALCONJX_HOME" value="${FLEXJS_HOME}/js">
        <and>
            <not>
                <isset property="FALCONJX_HOME" />
            </not>
            <available file="${FLEXJS_HOME}/js/lib/jsc.jar" type="file" />
        </and>
    </condition>

    <condition property="FALCONJX_HOME" value="${FLEXJS_HOME}/../flex-falcon/compiler-jx">
        <and>
            <not>
                <isset property="FALCONJX_HOME" />
            </not>
            <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar" type="file" />
        </and>
    </condition>

    <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="${FLEXJS_HOME}/js/lib/google/closure-library">
        <and>
            <not>
                <isset property="GOOG_HOME" />
            </not>
            <available file="${FLEXJS_HOME}/js/lib/google/closure-library/closure/goog/base.js" type="file" />
        </and>
    </condition>

    <path id="lib.path">
      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
    </path>
    
    <target name="compile" description="Compiles ${example}">
        <echo message="Compiling ${example}.swf"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>

        <!-- Load the <compc> task. We can't do this at the <project> level -->
        <!-- because targets that run before flexTasks.jar gets built would fail. -->
        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
        <!-- this is a dummy var placeholder in case some example needs to define a theme
            then they would set theme_arg=-theme=<path to theme> -->
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <mxmlc fork="true"
               file="${basedir}/src/main/flex/${example}.mxml"
               output="${basedir}/bin-debug/${example}.swf">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <arg value="+flexlib=${basedir}/frameworks" />
            <arg value="-debug" />
            <arg value="${theme_arg}" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
        </mxmlc>
        
        <html-wrapper 
            height="100%" 
            width="100%"
            bgcolor="#ffffff"
            name="${example}"
            versionmajor="11"
            versionminor="1"
            versionrevision="0" 
            output="${basedir}/bin-debug"/> 
 
        <antcall target="build_example.copy-resources" />
        <copy todir="${basedir}/bin-debug/fonts">
            <fileset dir="${FLEX_HOME}/frameworks/fonts">
                <include name="**/*.swf" />
            </fileset>
        </copy>
    </target>
    
    <target name="compileair" description="Compiles ${example}">
        <echo message="Compiling ${example}.swf"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
        
        <!-- Load the <compc> task. We can't do this at the <project> level -->
        <!-- because targets that run before flexTasks.jar gets built would fail. -->
        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <mxmlc fork="true"
            file="${basedir}/src/main/flex/${example}.mxml"
            output="${basedir}/bin-debug/${example}.swf">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <arg value="+flexlib=${basedir}/frameworks" />
            <arg value="+configname=air" />
            <arg value="-debug" />
            <arg value="${theme_arg}" />
            <arg value="-target-player=${playerglobal.version}" />
            <arg value="-swf-version=${swf.version}" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
        </mxmlc>
        
        <antcall target="build_example.copy-resources" />
        <copy todir="${basedir}/bin-debug">
            <fileset dir="${basedir}">
                <include name="*-app.xml" />
            </fileset>
        </copy>
    </target>
    
    <target name="compileas" description="Compiles ${example}">
        <echo message="Compiling ${example}.swf"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>

        <!-- Load the <compc> task. We can't do this at the <project> level -->
        <!-- because targets that run before flexTasks.jar gets built would fail. -->
        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <mxmlc fork="true"
               file="${basedir}/src/main/flex/${example}.as"
               output="${basedir}/bin-debug/${example}.swf">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <arg value="+flexlib=${basedir}/frameworks" />
            <arg value="-debug" />
            <arg value="${theme_arg}" />
            <arg value="-define=CONFIG::as_only,true" />
            <arg value="-define=CONFIG::js_only,false" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
        </mxmlc>
        
        <html-wrapper 
            height="300" 
            width="400"
            bgcolor="#ffffff"
            name="${example}"
            versionmajor="11"
            versionminor="1"
            versionrevision="0" 
            output="${basedir}/bin-debug"/> 
 
    </target>

    <target name="compilejs" description="Cross-compiles ${example}" unless="no.js">
        <echo message="Compiling ${example}.js"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
        <echo message="GOOG_HOME: ${GOOG_HOME}"/>
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <property name="extlib_arg" value="-define=CONFIG::extlib,false" />
        <property name="opt1_arg" value="-define=CONFIG::opt1,false" />
        <property name="opt2_arg" value="-define=CONFIG::opt2,false" />

        <java jar="${FALCONJX_HOME}/lib/mxmlc.jar" resultProperty="errorCode"
            fork="true">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <jvmarg line="-Dflexlib=${FLEXJS_HOME}/frameworks}"/>
            <arg value="+flexlib=${FLEXJS_HOME}/frameworks" />
            <arg value="-debug=false" />
            <arg value="${theme_arg}" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
            <arg value="${extlib_arg}" />
            <arg value="${opt1_arg}" />
            <arg value="${opt2_arg}" />
            <arg value="-js-output-type=FLEXJS" />
            <arg value="-closure-lib=${GOOG_HOME}" />
            <arg value="-sdk-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources" />
            <arg value="${basedir}/src/main/flex/${example}.mxml" />
        </java>
        <fail>
			<condition>
				<not>
					<or>
						<equals arg1="${errorCode}" arg2="0" />
						<equals arg1="${errorCode}" arg2="2" />
					</or>
				</not>
			</condition>
		</fail>
    </target>

    <target name="compilejsair" description="Cross-compiles ${example}" unless="no.js">
        <echo message="Compiling ${example}.js"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
        <echo message="GOOG_HOME: ${GOOG_HOME}"/>
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <property name="extlib_arg" value="-define=CONFIG::extlib,false" />
        <property name="opt1_arg" value="-define=CONFIG::opt1,false" />
        <property name="opt2_arg" value="-define=CONFIG::opt2,false" />
        
        <java jar="${FALCONJX_HOME}/lib/mxmlc.jar" resultProperty="errorCode"
            fork="true">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <jvmarg line="-Dflexlib=${FLEXJS_HOME}/frameworks}"/>
            <arg value="+flexlib=${FLEXJS_HOME}/frameworks" />
            <arg value="+configname=air" />
            <arg value="-debug=false" />
            <arg value="${theme_arg}" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
            <arg value="${extlib_arg}" />
            <arg value="${opt1_arg}" />
            <arg value="${opt2_arg}" />
            <arg value="-js-output-type=FLEXJS" />
            <arg value="-closure-lib=${GOOG_HOME}" />
            <arg value="-sdk-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources" />
            <arg value="${basedir}/src/main/flex/${example}.mxml" />
        </java>
        <fail>
            <condition>
                <not>
                    <or>
                        <equals arg1="${errorCode}" arg2="0" />
                        <equals arg1="${errorCode}" arg2="2" />
                    </or>
                </not>
            </condition>
        </fail>
    </target>

    <target name="compileasjs" description="Cross-compiles ${example}" unless="no.js">
        <echo message="Compiling ${example}.js"/>
        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
        <echo message="GOOG_HOME: ${GOOG_HOME}"/>
        <property name="theme_arg" value="-define=CONFIG::theme,false" />
        <property name="extlib_arg" value="-define=CONFIG::extlib,false" />
        <property name="opt1_arg" value="-define=CONFIG::opt1,false" />
        <property name="opt2_arg" value="-define=CONFIG::opt2,false" />

        <java jar="${FALCONJX_HOME}/lib/mxmlc.jar" resultProperty="errorCode"
            fork="true">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <jvmarg line="-Dflexlib=${FLEXJS_HOME}/frameworks}"/>
            <arg value="+flexlib=${FLEXJS_HOME}/frameworks" />
            <arg value="-debug=false" />
            <arg value="${theme_arg}" />
            <arg value="-define=CONFIG::as_only,false" />
            <arg value="-define=CONFIG::js_only,true" />
            <arg value="-compiler.mxml.children-as-data" />
            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
            <arg value="-compiler.binding-value-change-event-type=valueChange" />
			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
            <arg value="${extlib_arg}" />
            <arg value="${opt1_arg}" />
            <arg value="${opt2_arg}" />
            <arg value="-js-output-type=FLEXJS" />
            <arg value="-closure-lib=${GOOG_HOME}" />
            <arg value="-sdk-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources" />
            <arg value="${basedir}/src/main/flex/${example}.as" />
        </java>
        <fail>
			<condition>
				<not>
					<or>
						<equals arg1="${errorCode}" arg2="0" />
						<equals arg1="${errorCode}" arg2="2" />
					</or>
				</not>
			</condition>
		</fail>        
    </target>

    <macrodef name="html-wrapper">
        <attribute name="width"/>
        <attribute name="height"/>
        <attribute name="bgcolor"/>
        <attribute name="name"/>
        <attribute name="versionmajor"/>
        <attribute name="versionminor"/>
        <attribute name="versionrevision"/>
        <attribute name="output"/>
            <sequential>
                <copy toFile="@{output}/@{name}.html" 
                    file="${FLEXJS_HOME}/templates/swfobject/index.template.html" />
                <copy toDir="@{output}/history">
                    <fileset dir="${FLEXJS_HOME}/templates/swfobject/history">
                        <include name="**"/>
                    </fileset>
                </copy>
                <copy toDir="@{output}">
                    <fileset dir="${FLEXJS_HOME}/templates/swfobject">
                        <include name="*"/>
                        <exclude name="index.template.html"/>
                    </fileset>
                </copy>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${title}"
                        value="@{name}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${bgcolor}"
                        value="@{bgcolor}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${useBrowserHistory}"
                        value="--"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${version_major}"
                        value="@{versionmajor}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${version_minor}"
                        value="@{versionminor}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${version_revision}"
                        value="@{versionrevision}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${expressInstallSwf}"
                        value="expressInstall.swf"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${expressInstallSwf}"
                        value="expressInstall.swf"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${width}"
                        value="@{width}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${height}"
                        value="@{height}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${application}"
                        value="@{name}"/>
                </replace>
                <replace file="@{output}/@{name}.html">
                    <replacefilter
                        token="$${swf}"
                        value="@{name}"/>
                </replace>
        </sequential>
    </macrodef>
    
    <target name="check-resources" >
        <available file="${basedir}/src/main/resources"
        type="dir"
        property="has-resources"/>
    </target>
    
    <target name="copy-resources" depends="check-resources" if="has-resources">
        <copy todir="${basedir}/bin-debug">
            <fileset dir="${basedir}/src/main/resources">
                <include name="**/*.png" />
                <include name="**/*.jpg" />
                <include name="**/*.json" />
            </fileset>
        </copy>
    </target>
</project>
