<?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="experimental" 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}/experimental_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}/experimental_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>
			<mkdir dir="${basedir}/bundles/@{locale}/docs" />
			<zip destfile="${FLEX_HOME}/frameworks/locale/@{locale}/experimental_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"/>
				</zipfileset>
			</zip>
		</sequential>
	</macrodef>

	<macrodef name="bundle-clean">
		<attribute name="locale"/>
		<sequential>
			<delete failonerror="false">
				<fileset dir="${FLEX_HOME}/frameworks/locale">
					<include name="@{locale}/experimental_rb.swc"/>
					<include name="@{locale}/experimental_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 experimental.swc and default locale">
		<bundle locale="${locale}"/>
	</target>

	<target name="other.locales" depends="bundles" description="Build other locale SWCs"/>

	<!-- This is a private target for building experimental.swc for various locales. -->
	<!-- The targets below set the 'locale' parameter and call it with <antcall>. -->
	<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="clean" depends="bundles-clean">
		<delete failonerror="false">
			<fileset dir="${basedir}" >
				<include name="bundles.properties"/>
			    <include name="bundles/en_US/packages.dita"/>
			</fileset>
			<fileset dir="${FLEX_HOME}/frameworks/libs">
				<include name="experimental.swc"/>
				<include name="experimental.swc.incr"/>
			</fileset>
		</delete>
	</target>

	<target name="bundles-clean">
		<delete failonerror="false">
			<fileset dir="${FLEX_HOME}/frameworks/locale">
				<include name="*/experimental_rb.swc"/>
				<include name="*/experimental_rb.swc.incr"/>
			</fileset>
		</delete>
	</target>

	<target name="compile" description="Compiles experimental.swc">
		<echo message="Compiling frameworks/libs/experimental.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 experimental classes
			listed in this project's manifest.xml.
			Also link the additional classes (and their dependencies)
			listed in ExperimentalClasses.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/experimental.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 experimental.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 class="ExperimentalClasses"/>
		    <namespace uri="http://flex.apache.org/experimental/ns" manifest="${basedir}/manifest.xml"/>
		    <namespace uri="library://ns.adobe.com/flex/spark" manifest="${basedir}/spark-manifest.xml"/>
		    <jvmarg line="${asdoc.jvm.args}"/>
		</asdoc>

		<!-- updates experimental.swc with asdoc xml -->
		<zip destfile="${FLEX_HOME}/frameworks/locale/en_US/experimental_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"/>
	</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"/>
	</target>
</project>
