<?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>
