<?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="ASDocs" default="main" basedir=".">
	<property name="FLEX_HOME" value="${basedir}/.."/>
	<property name="lenient" value="true"/>
	<property name="flexlib" location="${FLEX_HOME}/frameworks"/>

    <property name="doc_output" location="${FLEX_HOME}/asdoc-output"   />
    <property name="include_examples" location="${doc_output}/include_examples" />

    <property file="${FLEX_HOME}/env.properties"/>
    <property environment="env"/>
	<property file="${FLEX_HOME}/build.properties"/>

    <available file="${FLEX_HOME}/../flex-tlf/textLayout"
            type="dir"
            property="TLF_HOME"
            value="${FLEX_HOME}/../flex-tlf" />

    <available file="${FLEX_HOME}/../tlf/textLayout"
               type="dir"
               property="TLF_HOME"
               value="${FLEX_HOME}/../tlf" />

    <available file="${env.TLF_HOME}"
               type="dir"
               property="TLF_HOME"
               value="${env.TLF_HOME}"/>

	<target name="main" depends="clean,copyExamples,doc" description="Clean build of all ASDocs"/>

	<target name="clean" description="Cleans all ASDocs">
		<delete dir="${doc_output}"/>
	</target>

    <target name="copyExamples" description="Copy all  projects asdocs subdir to singe location">
        <copy todir="${include_examples}">
            <fileset dir="${flexlib}/projects/advancedgrids/asdoc/en_US"/>
            <fileset dir="${flexlib}/projects/airframework/asdoc/en_US"/>
            <!-- <fileset dir="${flexlib}/projects/apache/asdoc/en_US"/>-->
            <fileset dir="${flexlib}/projects/charts/asdoc/en_US"/>
            <!--  <fileset dir="${flexlib}/projects/core/asdoc/en_US"/>-->
            <!--  <fileset dir="${flexlib}/projects/experimental/asdoc/en_US"/>-->
            <fileset dir="${flexlib}/projects/framework/asdoc/en_US"/>
            <fileset dir="${flexlib}/projects/mobilecomponents/asdoc/en_US"/>
            <fileset dir="${flexlib}/projects/experimental_mobile/asdoc/en_US"/>
            <!--  <fileset dir="${flexlib}/projects/mx/asdoc/en_US"/>-->
            <fileset dir="${flexlib}/projects/rpc/asdoc/en_US"/>
            <fileset dir="${flexlib}/projects/spark/asdoc/en_US"/>
        </copy>
    </target>

	<target name="doc">

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

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

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

        <path id="flexTasks.path">
            <fileset dir="${FLEX_HOME}">
                <include name="lib/flexTasks.jar" />
                <include name="ant/lib/flexTasks.jar" />
            </fileset>
        </path>
        <taskdef resource="flexTasks.tasks" classpathref="flexTasks.path"/>

		<!-- Call asdoc to generate dita xml files -->
		<asdoc output="${doc_output}" lenient="true" failonerror="true" warnings="false" strict="false" locale="en_US" fork="true"
               window-title="ApacheFlex API Reference"
               main-title="${release} API Reference "
               footer="${manifest.Implementation-Vendor}"
               examples-path="${include_examples}"
                >

			<!-- top level class to include in asdoc -->
		    <doc-classes class="AIRFrameworkClasses"/>
		    <doc-classes class="AIRSparkClasses"/>
		    <doc-classes class="CoreClasses"/>
		    <doc-classes class="SparkClasses"/>
		    <doc-classes class="FrameworkClasses"/>
		    <doc-classes class="MxClasses"/>
		    <doc-classes class="SparkSkinsClasses"/>
		    <doc-classes class="RPCClasses"/>
		    <doc-classes class="MobileComponentsClasses"/>		    
		    <doc-classes class="MobileThemeClasses"/>		    
		    <doc-classes class="SparkDmvClasses"/>
		    <doc-classes class="ExperimentalClasses"/>
		    <doc-classes class="ExperimentalMobileClasses"/>
	    		    
			<doc-classes class="flashx.textLayout.CoreClasses"/>
			<doc-classes class="flashx.textLayout.EditClasses"/>
			<doc-classes class="flashx.textLayout.ConversionClasses"/>

			<!-- source path for asdoc -->
			<compiler.source-path path-element="${flexlib}/projects/airframework/src"/>
			<compiler.source-path path-element="${flexlib}/projects/airspark/src"/>
			<compiler.source-path path-element="${flexlib}/projects/core/src"/>
			<compiler.source-path path-element="${flexlib}/projects/spark/src"/>
			<compiler.source-path path-element="${flexlib}/projects/framework/src"/>
			<compiler.source-path path-element="${flexlib}/projects/mx/src"/>
			<compiler.source-path path-element="${flexlib}/projects/sparkskins/src"/>
			<compiler.source-path path-element="${flexlib}/projects/rpc/src"/>
		    <compiler.source-path path-element="${TLF_HOME}/textLayout/src"/>
			<!--compiler.source-path path-element="${flexlib}/projects/osmf/src"/-->
			<compiler.source-path path-element="${flexlib}/projects/advancedgrids/src"/>
			<compiler.source-path path-element="${flexlib}/projects/charts/src"/>
			<compiler.source-path path-element="${flexlib}/projects/mobilecomponents/src"/>
			<compiler.source-path path-element="${flexlib}/projects/mobiletheme/src"/>
			<compiler.source-path path-element="${flexlib}/projects/spark_dmv/src"/>
            <!--  added for Apache -->
			<compiler.source-path path-element="${flexlib}/projects/apache/src"/>
			<compiler.source-path path-element="${flexlib}/projects/experimental/src"/>
            <compiler.source-path path-element="${flexlib}/projects/experimental_mobile/src"/>
						
			<!-- namespaces to include in asdoc -->
		    <doc-namespaces uri="http://www.adobe.com/2006/airmxml"/>
		    <doc-namespaces uri="http://www.adobe.com/2006/airspark"/>
		    <doc-namespaces uri="library://ns.adobe.com/flex/spark"/>
		    <doc-namespaces uri="http://www.adobe.com/2006/mxml"/>
		    <doc-namespaces uri="http://www.adobe.com/2006/rpcmxml"/>
 			<doc-namespaces uri="library://ns.adobe.com/flashx/textLayout"/>
 			<doc-namespaces uri="http://ns.adobe.com/2009/mx-mxml"/>
 			<doc-namespaces uri="http://www.adobe.com/2006/advancedgridsmxml"/>
 			<doc-namespaces uri="http://www.adobe.com/2006/charts"/>
 			<doc-namespaces uri="library://ns.adobe.com/flex/spark-dmv"/>
            <!--  added for Apache -->
 			<doc-namespaces uri="http://flex.apache.org/ns"/>
 			<doc-namespaces uri="http://flex.apache.org/experimental/ns"/>
 			
		    <namespace uri="library://ns.adobe.com/flashx/textLayout" manifest="${TLF_HOME}/textLayout/manifest.xml"/>

			<!-- namespace declaration for asdoc -->
		    <namespace uri="http://www.adobe.com/2006/airmxml" manifest="${flexlib}/projects/airframework/manifest.xml"/>
		    <namespace uri="http://www.adobe.com/2006/airspark" manifest="${flexlib}/projects/airspark/manifest.xml"/>
		    <namespace uri="http://www.adobe.com/2006/rpcmxml" manifest="${flexlib}/projects/rpc/manifest.xml"/>
		    <namespace uri="http://ns.adobe.com/2009/mx-mxml" manifest="${flexlib}/projects/mx/manifest.xml"/>
		    <namespace uri="http://www.adobe.com/2006/advancedgridsmxml" manifest="${flexlib}/projects/advancedgrids/manifest_advancedgrids.xml"/>
		    <namespace uri="http://www.adobe.com/2006/charts" manifest="${flexlib}/projects/charts/manifest_charts.xml"/>

		    <namespace uri="http://www.adobe.com/2006/mxml" manifest="${flexlib}/mxml-manifest.xml"/>
		    <namespace uri="library://ns.adobe.com/flex/spark" manifest="${flexlib}/projects/spark/manifest.xml"/>
		    <namespace uri="library://ns.adobe.com/flex/mx" manifest="${flexlib}/mxml-manifest.xml"/>
			<namespace uri="library://ns.adobe.com/flex/spark" manifest="${flexlib}/projects/mobilecomponents/manifest.xml"/>
			<namespace uri="library://ns.adobe.com/flex/spark-dmv" manifest="${flexlib}/projects/spark_dmv/manifest_spark_dmv.xml"/>

            <!--  added for Apache -->
		    <namespace uri="http://flex.apache.org/ns" manifest="${flexlib}/projects/apache/manifest.xml"/>
		    <namespace uri="http://flex.apache.org/experimental/ns" manifest="${flexlib}/projects/experimental/manifest.xml"/>
            <namespace uri="http://flex.apache.org/experimental/ns"  manifest="${flexlib}/projects/experimental_mobile/manifest.xml"/>

			<library-path/>
            <external-library-path dir="${env.AIR_HOME}/frameworks/libs/air">
                <include name="airglobal.swc"/>
            </external-library-path>
			<external-library-path dir="${flexlib}/libs">
		    	<include name="framework.swc" />
		    	<!-- if no osfm sources -->
		    	<include name="osmf.swc" />
		    	<!-- if no textLayout sources -->
		    	<!--include name="textLayout.swc" /-->
		    </external-library-path>

			<jvmarg line="${asdoc.jvm.args}"/>

			<define name="CONFIG::debug" value="false"/>
			<define name="CONFIG::release" value="true"/>
			<define name="CONFIG::FLASH_10_1" value="false"/>
            <define name="CONFIG::LOGGING" value="false"/>
			<define name="CONFIG::performanceInstrumentation" value="false"/>            
		</asdoc>
	</target>
</project>
