<?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="sdk/build.xml" default="main" basedir="..">

    <!-- properties -->
    <property file="${basedir}/build.properties"/>
    <property name="lib.dir" value="${basedir}/lib"/>

    <property name="localsdk.lib.dir" value="${basedir}/sdk/lib"/>

    <property environment="env"/>

    <patternset id="sdk.jars">
        <include name="adt.jar"/>
        <include name="asc.jar"/>
        <include name="asdoc.jar"/>
        <include name="batik*.jar"/>
        <include name="commons-collections.jar"/>
        <include name="commons-logging.jar"/>
        <include name="compc.jar"/>
        <include name="license.jar"/>
        <include name="velocity-*.jar"/>
        <include name="mm-velocity-*.jar"/>
        <include name="mxmlc.jar"/>
        <include name="swfutils.jar"/>
        <include name="xerces*.jar"/>
        <include name="flex-fontkit.jar"/>
        <include name="fxgutils.jar"/>
    </patternset>

    <target name="main" depends="clean,copy"
            description="cleans and copies the sdk libraries from the development location"/>

    <!--
        This will now copy files from the SDK and internal SDK to the
        proper directories
     -->
    <target name="copy" description="copy SDK">
        <echo>ant copying SDK from ${FLEX_HOME}</echo>
        <copy toDir="${basedir}">
            <fileset dir="${FLEX_HOME}">
                <include name="lib/flexTasks.jar"/>
                <include name="bin/**/*"/>
                <include name="lib/adt.jar"/>
                <include name="lib/asc.jar"/>
                <include name="lib/asdoc.jar"/>
                <include name="lib/batik*.jar"/>
                <include name="lib/commons-collections.jar"/>
                <include name="lib/commons-logging.jar"/>
                <include name="lib/compc.jar"/>
                <include name="lib/flex-fontkit.jar"/>
                <include name="lib/fxgutils.jar"/>
                <include name="lib/license.jar"/>
                <include name="lib/velocity-*.jar"/>
                <include name="lib/mm-velocity-*.jar"/>
                <include name="lib/mxmlc.jar"/>
                <include name="lib/swfutils.jar"/>
                <include name="lib/xerces*.jar"/>
                <include name="asdoc/**/*"/>
                <include name="frameworks/**/*"/>
                <include name="runtimes/player/**/*"/>
                <include name="runtimes/air/**/*"/>
                <include name="templates/**/*"/>
                <exclude name="frameworks/build.xml"/>
                <exclude name="frameworks/javascript/"/>
                <exclude name="frameworks/projects/"/>
                <!--exclude name="frameworks/themes/"/> -->
            </fileset>
        </copy>

        <!-- flex-sdk-description.xml needs to go in /WEB-INF/flex for Flex Builder -->
        <copy toDir="${basedir}/frameworks">
            <fileset dir="${FLEX_HOME}">
                <include name="flex-sdk-description.xml"/>
            </fileset>
        </copy>

        <!-- Copy playerglobal.swc from framework\libs\players to framework\libs directory -->
        <copy file="${playerglobal.swc}" todir="${basedir}/frameworks/libs"/>

        <!-- If using SDK3 copy dmv swcs for SDK 3 to frameworks\libs directory -->

        <condition property="isFlex3" value="true">
            <equals arg1="${sdk.version}" arg2="3"/>
        </condition>
        <antcall target="copy.flex3.dmv" />

        <!-- 
             Override with any custom "local" swcs. These swcs are written over the
             base set of accepted swcs that have been unpacked or copied above. 
        -->
        <condition property="using.local.swcs" value="true">
            <istrue value="${use.local.swcs}"/>
        </condition>
        <antcall target="copy.local.swcs" />

        <!-- set swcs read only -->
        <!-- attrib only works on windows -->
        <attrib readonly="true">
            <fileset dir="${basedir}">
                <include name="frameworks/libs/**/*"/>
                <include name="frameworks/locale/**/*"/>
            </fileset>
        </attrib>

        <!-- set swcs read only (chmod only works on unix) -->
        <chmod perm="-w" verbose="true" type="file">
            <fileset dir="${basedir}">
                <include name="frameworks/libs/**/*"/>
                <include name="frameworks/locale/**/*"/>
            </fileset>
        </chmod>

        <!-- turn on execute bits (unix only) -->
        <chmod perm="+x" verbose="true" type="file">
            <fileset dir="${basedir}">
                <include name="bin/**/*"/>
                <include name="servers/**/bin/*"/>
            </fileset>
        </chmod>

        <!--<copy todir="${basedir}/bin">
            <fileset dir="${basedir}/runtimes/player" includes="11.1/**,win/*,mac/*"/>
            <fileset dir="${basedir}/runtimes/air" includes="win/*,mac/*"/>
        </copy>
        <delete dir="${basedir}/runtimes/player"/>-->

        <!-- When the build is instrumented, command line compilation fails
              if clover.jar is not in the classpath 
        -->
        <antcall target="instrumented.build" />

    </target>

    <target name="copy.flex3.dmv" if="isFlex3" >
        <copy todir="${basedir}/frameworks/libs">
            <fileset dir="${sdk.zip.dir}/dmv/">
                <include name="datavisualization.swc"/>
            </fileset>
        </copy>
        <copy todir="${basedir}/frameworks/locale">
            <fileset dir="${sdk.zip.dir}/dmv/locale">
                <include name="**/*.swc"/>
            </fileset>
        </copy>
    </target>
    
    <target name="copy.local.swcs" if="using.local.swcs">
        <echo message="Processing local swc overrides..."/>
        <copy todir="${basedir}/frameworks/libs">
            <fileset dir="${basedir}/frameworks/local-swcs/">
                <include name="**/*"/>
                <exclude name="readme.txt"/>
            </fileset>
        </copy>
    </target>

    <target name="instrumented.build" if="build.is.instrumented">
        <echo message="adding clover.jar to bin/jvm.config's classpath...."/>
        <replace file="${basedir}/bin/jvm.config" token="java.class.path="
        value="java.class.path=c:/depot/flex/enterprise/lib/clover.jar"/>
        
        <echo message="Updating mxmlc.jar's manifest to include clover.jar"/>
        <copy file="${basedir}/lib/mxmlc.jar" tofile="${basedir}/lib/mxmlc.jar.orig"/>
        
        <unjar src="${basedir}/lib/mxmlc.jar" dest="${basedir}/lib/ccTemp"/>
        
        <replace file="${basedir}/lib/ccTemp/META-INF/MANIFEST.MF">
            <replacefilter token="Class-Path:" value="Class-Path: clover.jar"/>
        </replace>
        
        <jar basedir="${basedir}/lib/ccTemp" destfile="${basedir}/lib/mxmlc.jar"
        manifest="${basedir}/lib/ccTemp/META-INF/MANIFEST.MF"/>
    </target>
    
    <target name="clean" description="clean">
        <delete failonerror="true" includeEmptyDirs="true" verbose="true">
            <fileset dir="${lib.dir}" erroronmissingdir="false">
                <patternset refid="sdk.jars"/>
            </fileset>
            <fileset dir="${lib.dir}" erroronmissingdir="false" includes="flexTasks.jar"/>
            <fileset dir="${basedir}" erroronmissingdir="false">
                <patternset>
                    <include name="frameworks/flash-integration/**/*"/>
                    <include name="frameworks/libs/**/*"/>
                    <include name="frameworks/rsls/"/>
                    <include name="frameworks/locale/**/*"/>
                    <include name="frameworks/build_framework.xml"/>
                    <include name="frameworks/downloads.xml"/>
                    <include name="frameworks/flex-config-template.xml"/>
                    <include name="frameworks/flex-sdk-description.xml"/>
                    <include name="frameworks/metadata.xml"/>
                    <include name="frameworks/*Fonts.ser"/>
                    <include name="frameworks/*config.xml"/>
                    <include name="frameworks/*-manifest.xml"/>
                    <include name="frameworks/flash-unicode-table.xml"/>
                    <include name="frameworks/themes/**/*"/>
                    <include name="ant/"/>
                    <include name="bin/"/>
                    <include name="asdoc/"/>
                    <include name="runtimes/"/>
                    <include name="${sdk.jars}"/>
                    <include name="templates/**/*"/>
                </patternset>
            </fileset>
        </delete>
        <delete quiet="true" dir="${basedir}/frameworks/tests"/>
        <delete quiet="true" dir="${basedir}/frameworks/themes"/>
        <delete quiet="true" dir="${basedir}/frameworks/flash-integration"/>
        <echo>modules/sdk cleaned</echo>
    </target>

</project>
