<?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="advancedgrids" 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}/advancedgrids_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}/advancedgrids_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 advancedgrids_rb.swc for @{locale}"/>
			<mkdir dir="${basedir}/bundles/@{locale}/docs" />
			<zip destfile="${FLEX_HOME}/frameworks/locale/@{locale}/advancedgrids_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}/advancedgrids_rb.swc"/>
					<include name="@{locale}/advancedgrids_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 advancedgrids.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 automation_flashflexkit_rb.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="advancedgrids.swc"/>
				<include name="advancedgrids.swc.incr"/>
			</fileset>
			<fileset dir="${FLEX_HOME}/frameworks/locale">
				<include name="*/advancedgrids_rb.swc"/>
				<include name="*/advancedgrids_rb.swc.incr"/>
			</fileset>
		</delete>
	</target>
	
	<target name="bundles-clean">
		<delete failonerror="false">
			<fileset dir="${basedir}" >
				<include name="bundles.properties"/>
			</fileset>
			<fileset dir="${FLEX_HOME}/frameworks/locale">
				<include name="*/advancedgrids_rb.swc"/>
				<include name="*/advancedgrids_rb.swc.incr"/>
			</fileset>
		</delete>
	</target>
		
	<target name="compile" description="Compiles advancedgrids.swc">
		
		<echo message="Compiling frameworks/libs/advancedgrids.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 AdvancedDataGridClasses.as ChartsClasses.as,
			because these aren't referenced by the manifest classes.
			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/advancedgrids.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>
	
	<!-- documentation -->
	<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-namespaces uri="library://ns.adobe.com/flex/mx"/>
		    <namespace uri="library://ns.adobe.com/flex/mx" manifest="${basedir}/manifest_advancedgrids.xml"/>
		    <jvmarg line="${asdoc.jvm.args}"/>
		</asdoc>
 
		<!-- updates advancedgrids.swc with asdoc xml -->
		<zip destfile="${FLEX_HOME}/frameworks/locale/en_US/advancedgrids_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>

    <target name="test" description="Runs the FlexUnit tests for this project">
        <ant antfile="${FLEX_HOME}/flexunit-tests.xml">
            <property name="project.root" value="${basedir}"/>
        </ant>
    </target>
</project>
