<?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="automation" default="main" basedir=".">

    <property name="FLEX_HOME" location="${basedir}/../../.."/>

    <property file="${FLEX_HOME}/env.properties"/>
    <property environment="env"/>
	<property file="${FLEX_HOME}/build.properties"/>
	
	<macrodef name="bundle">
		<attribute name="locale"/>
		<sequential>
			<echo message="Compiling frameworks/locale/@{locale}/automation_rb.swc"/>
			<!-- 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" classpath="${FLEX_HOME}/lib/flexTasks.jar"/>
			<compc fork="true"
				   output="${FLEX_HOME}/frameworks/locale/@{locale}/automation_rb.swc">
				<jvmarg line="${compc.jvm.args}"/>
                <load-config filename="bundle-config.xml" />
                <arg value="+playerglobal.version=${playerglobal.version}" />
                <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
                <arg value="+locale=@{locale}" />
			</compc>
		</sequential>
	</macrodef>	
	
	<macrodef name="fat-swc">
		<attribute name="locale"/>
			<sequential>
				<echo message="creating 'fat-swc' with en_US dita files in automation_rb.swc for @{locale}"/>
				<mkdir dir="${basedir}/bundles/@{locale}/docs" />
				<zip destfile="${FLEX_HOME}/frameworks/locale/@{locale}/automation_rb.swc" update="true">
					<zipfileset dir="${basedir}/bundles/@{locale}/docs" prefix="docs">
						<include name="*.*"/>
					</zipfileset>
					<zipfileset dir="${basedir}/bundles/en_US" prefix="docs">
						<include name="packages.dita"/>
						<include name="*.xml"/>
					</zipfileset>
				</zip>
			</sequential>
	</macrodef>	

	<macrodef name="bundle-clean">
		<attribute name="locale"/>
		<sequential>
			<delete failonerror="false">
				<fileset dir="${FLEX_HOME}/frameworks/locale">
					<include name="@{locale}/automation_rb.swc"/>
					<include name="@{locale}/automation_rb.swc.incr"/>
				</fileset>
			</delete>
		</sequential>
	</macrodef>	
	
	<macrodef name="bundler">
		<attribute name="locale"/>
		<element name="run.fat.swc" optional="yes"/>
		<sequential>
			<bundle-clean locale="@{locale}"/>
			<bundle locale="@{locale}"/>
			<run.fat.swc/>
		</sequential>
	</macrodef>
		
	<target name="main" depends="clean,compile" description="Clean build of automation.swc and en_US">
		<bundle locale="${locale}"/>
	</target>
	
	<target name="other.locales" depends="bundles" description="Build other locale SWCs"/>
	
	<!-- This is a private target for building automation_rb.swc for various locales. -->
	<!-- The targets below set the 'locale' parameter  -->
	<target name="bundles">
		<!-- these languages do not have localized docs-->
		<bundler locale="en_AU"/><!-- Australian resources -->
		<bundler locale="en_GB"/><!-- United Kingdom resources -->
		<bundler locale="en_CA"/><!-- Canadian resources -->
		<bundler locale="da_DK"/><!-- Danish resources -->
		<bundler locale="de_DE"><!-- German resources -->
			<run.fat.swc>
				<fat-swc locale="de_DE"/>
			</run.fat.swc>
		</bundler>
		<bundler locale="de_CH"/><!-- Swiss German resources -->
		<bundler locale="es_ES"/><!-- Spanish resources -->
		<bundler locale="fi_FI"/><!--  Finnish resources-->
		<bundler locale="fr_CH"/><!-- Swiss French resources -->
		<bundler locale="fr_FR"><!-- French resources -->
			<run.fat.swc>
				<fat-swc locale="fr_FR"/>
			</run.fat.swc>
		</bundler>
		<bundler locale="it_IT"/><!-- Italian resources -->
		<bundler locale="ja_JP"><!-- Japanese resources -->
			<run.fat.swc>
				<fat-swc locale="ja_JP"/>
			</run.fat.swc>
		</bundler>
		<bundler locale="ko_KR"/><!-- Korean resources -->
		<bundler locale="nb_NO"/><!-- Norwegian Bokmal resources -->
		<bundler locale="nl_NL"/><!-- Dutch resources -->
		<bundler locale="pt_BR"/><!-- Brazilian Portuguese resources -->
		<bundler locale="pt_PT"/><!-- Portugal Portuguese resources -->
		<bundler locale="ru_RU"><!-- Russian resources -->
			<run.fat.swc>
				<fat-swc locale="ru_RU"/>
			</run.fat.swc>
		</bundler>
		<bundler locale="sv_SE"/><!-- Swedish resources -->
		<bundler locale="zh_CN"><!-- Simplified Chinese resources -->
			<run.fat.swc>
				<fat-swc locale="zh_CN"/>
			</run.fat.swc>
		</bundler>
		<bundler locale="zh_TW"/><!-- Traditional Chinese resources -->
		<bundler locale="el_GR"/><!-- Greek Language  resources -->
	</target>
	
	<target name="compile" description="Compiles automation.swc">
		<echo message="Compiling frameworks/libs/automation/automation.swc"/>
		<!-- 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" classpath="${FLEX_HOME}/lib/flexTasks.jar"/>
		<!--
			Link in the classes (and their dependencies) for the MXML tags
			listed in this project's manifest.xml.
			Also link the additional classes (and their dependencies)
			listed in FrameworkClasses.as,
			because these aren't referenced by the manifest classes.
			Keep the standard metadata when compiling.
			Link in accessibility support.
			Include the appropriate CSS files and assets in the SWC.
			Don't include any resources in the SWC.
			Write a bundle list of referenced resource bundles
			into the file bundles.properties in this directory.
		-->
	
		<compc fork="true"
			   output="${FLEX_HOME}/frameworks/libs/automation/automation.swc">
			<jvmarg line="${compc.jvm.args}"/>
            <load-config filename="compile-config.xml" />
            <arg value="+playerglobal.version=${playerglobal.version}" />
            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
		</compc>
	</target>
		
	<target name="doc" depends="clean-temp-docs" description="updates framework.swc with asdoc xml">
		<!-- Load the <asdoc> 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" classpath="${FLEX_HOME}/lib/flexTasks.jar"/>

	    <condition property="asdoc.jvm.args" value="-Xmx384m">
	        <os family="windows"/>
	    </condition>

	    <condition property="asdoc.jvm.args" value="-Xmx512m">
	        <os family="mac"/>
	    </condition>

	    <condition property="asdoc.jvm.args" value="-Xmx512m">
	        <os family="unix"/>
	    </condition>

		<!-- Call asdoc to generate dita xml files -->
		<asdoc output="${FLEX_HOME}/tempDoc" lenient="true" failonerror="true" keep-xml="true" skip-xsl="true" fork="true">
		    <compiler.source-path path-element="${basedir}/src"/>
			<doc-classes>AutomationClasses</doc-classes>
			<external-library-path dir="${FLEX_HOME}/frameworks/libs/automation/automation_agent.swc"/>
		    <namespace uri="http://www.adobe.com/2006/automation_mxml" manifest="${basedir}/manifest_automation.xml"/>
		    <jvmarg line="${asdoc.jvm.args}"/>
		</asdoc>

		<!-- updates automation.swc with asdoc xml -->
		<zip destfile="${FLEX_HOME}/frameworks/locale/en_US/automation_rb.swc" update="true">
		    <zipfileset dir="${FLEX_HOME}/tempDoc/tempdita" prefix="docs">
			    <include name="*.*"/>
				<exclude name="ASDoc_Config.xml"/>
				<exclude name="overviews.xml"/>
		    </zipfileset>
		</zip>
		<copy file="${FLEX_HOME}/tempDoc/tempdita/packages.dita" tofile="${basedir}/bundles/en_US/packages.dita"/>
		<!--remove this when files have been localized -->
		<copy todir="${basedir}/bundles/en_US">
			<fileset dir="${FLEX_HOME}/tempDoc/tempdita" includes="*.xml"/>
		</copy>
	</target>
	
	<target name="clean" depends="bundles-clean">
		<delete failonerror="false">
			<fileset dir="${basedir}" >
				<include name="bundles.properties"/>
			</fileset>
			<fileset dir="${FLEX_HOME}/frameworks/libs/automation">
				<include name="automation.swc"/>
				<include name="automation.swc.incr"/>
			</fileset>
			<fileset dir="${FLEX_HOME}/frameworks/libs">
				<include name="automation.swc"/>
				<include name="automation.swc.incr"/>
			</fileset>
		</delete>
	</target>
	
	<target name="bundles-clean">
		<delete failonerror="false">
			<fileset dir="${FLEX_HOME}/frameworks/locale">
				<include name="*/automation_rb.swc"/>
				<include name="*/automation_rb.swc.incr"/>
			</fileset>
		</delete>
	</target>
	
	<target name="clean-temp-docs">
		<delete dir="${FLEX_HOME}/tempDoc" failonerror="false" includeEmptyDirs="true"/>
		<delete file="${basedir}/bundles/en_US/packages.dita" failonerror="false"/>
		<delete failonerror="false">
			<fileset dir="${basedir}/bundles/en_US" includes="*.xml"/>
		</delete>
	</target>
</project>
