<?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="asc" default="main" basedir=".">
	<property file="${basedir}/build.properties" />
	<property name="root.dir" value="${basedir}/../.."/>
	<property name="bin.dir" value="${root.dir}/bin"/>
	<property name="java.src.dir" value="${root.dir}/src/java"/>
	<property name="javac.src" value="1.5"/>    
	<property name="as.src.dir" value="${root.dir}/src/as"/>
	<property name="cpp.src.dir" value="${root.dir}/src/cpp"/>
	<property name="build.util" value="${root.dir}/build/util"/>
	<property name="lib.dir" value="${root.dir}/lib"/>
	<property name="asc.name" value="asc"/>
	<property name="avm.global" value="${basedir}/../../../avmplus/core" />
	<property name="avm.shell" value="${basedir}/../../../avmplus/shell" />
	<property name="avmglue" value="${basedir}/../../../player/FlashPlayer/avmglue" />
	<property name="global.dest" value="${basedir}/../../lib/global.abc" />
	<property name="shell.dest"	value="${basedir}/../../lib/shell.abc" />
	<property name="playerglobal.dest" value="${basedir}/../../lib/playerglobal.abc" />
	<property name="clover.jar" value="" />
	<!-- clover html out  and history directories -->
	<property name="clover_html" value="clover_html" />
	<property name="clover_hist" value="clover_hist" />
    
    <property name="build.number" value="cyclone" />

	<!--condition property="avm.name" value="./avmplus">
		<os family="mac"/>
	</condition>
	<condition property="avm.name" value="avmplus.exe">
		<os family="windows"/>
	</condition-->


	<target name="main" depends="clean,jar">
	</target>

	<target name="dev" depends="jar" description="runs src.depend build for development"/>

	<target name="authoring" depends="jar">
		<jar file="${lib.dir}/asc_authoring.jar" basedir="${basedir}/classes" includes="macromedia/asc/**/*,macromedia/abc/**/*,adobe/asc/**/*">
			<manifest>
				<attribute name="Main-Class" value="macromedia.asc.embedding.Main"/>
				<attribute name="Class-Path" value=""/>
                <attribute name="Implementation-Title" value="ActionScript Compiler (asc)"/>
                <attribute name="Implementation-Version" value="1.0 build ${build.number}"/> 
			</manifest>
		</jar>
	</target>
	<target name="builtin">
	  <antcall target="globalabc"/>
	</target>
    <target name="globalabc">
        <java classname="macromedia.asc.embedding.ScriptCompiler" fork="true" maxmemory="200M" dir="${avm.core}">
            <arg line="-builtin -out builtin builtin.as Math.as Error.as RegExp.as Date.as XML.as" />
            <jvmarg value="-ea" />
            <sysproperty key="AVMPLUS" value=""/>
            <sysproperty key="AS3" value=""/>
            <classpath>
                <pathelement location="${basedir}/../../lib/asc.jar"/>
            </classpath>
        </java>
        <copy file="${avm.core}/builtin.abc" tofile="${global.dest}" />
    </target>
    <target name="shellabc">
        <java classname="macromedia.asc.embedding.ScriptCompiler" fork="true" maxmemory="200M" dir="${avm.shell}">
            <arg line="-abcfuture -builtin -import ${avm.core}/builtin.abc -out shell toplevel.as Domain.as StringBuilder.as ByteArray.as IntArray.as UIntArray.as DoubleArray.as FloatArray.as ShortArray.as UShortArray.as ../extensions/Dictionary.as Endian.as Java.as" />
            <jvmarg value="-ea" />
            <sysproperty key="AVMPLUS" value=""/>
            <sysproperty key="AS3" value=""/>
            <classpath>
                <pathelement location="${basedir}/../../lib/asc.jar"/>
            </classpath>
        </java>
        <copy file="${avm.shell}/shell.abc" tofile="${shell.dest}" />
    </target>
    <target name="playerglobalabc">
        <java classname="macromedia.asc.embedding.ScriptCompiler" fork="true" maxmemory="200M" dir="${avmglue}">
            <arg line="-abcfuture -out playerglobal -import ${avm.core}/builtin.abc flash_errors.as flash_utils.as classes/CSMSettings.as classes/ObjectOutput.as classes/ObjectInput.as classes/IDynamicPropertyOutput.as classes/DynamicPropertyOutput.as classes/IDynamicPropertyWriter.as classes/IExternalizable.as classes/IBitmapDrawable.as classes/AVM1Movie.as classes/Accessibility.as classes/AccessibilityImplementation.as classes/AccessibilityProperties.as classes/ActivityEvent.as classes/ApplicationDomain.as classes/BevelFilter.as classes/BlurFilter.as classes/SimpleButton.as classes/ByteArray.as classes/Camera.as classes/ColorMatrixFilter.as classes/ColorTransform.as classes/DisplayObjectContainer.as classes/ContextMenu.as classes/ContextMenuBuiltInItems.as classes/ContextMenuItem.as classes/ConvolutionFilter.as classes/CustomActions.as classes/TextEvent.as classes/DataEvent.as classes/Endian.as classes/IDataInput.as classes/IDataOutput.as classes/Debugger.as classes/DisplacementMapFilter.as classes/DisplacementMapFilterMode.as classes/DisplayObject.as classes/BlendMode.as classes/DropShadowFilter.as classes/AsyncErrorEvent.as classes/ErrorEvent.as classes/Event.as classes/EventPhase.as classes/EventDispatcher.as classes/ExternalInterface.as classes/FSCommand.as classes/FileFilter.as classes/FileReference.as classes/FileReferenceList.as classes/FocusEvent.as classes/Font.as classes/FontType.as classes/FullScreenEvent.as classes/GlowFilter.as classes/GradientBevelFilter.as classes/GradientGlowFilter.as classes/Graphics.as classes/GradientType.as classes/SpreadMethod.as classes/InterpolationMethod.as classes/LineScaleMode.as classes/CapsStyle.as classes/JointStyle.as classes/HTTPStatusEvent.as classes/IEventDispatcher.as classes/IOErrorEvent.as classes/BitmapData.as classes/BitmapDataChannel.as classes/BitmapFilter.as classes/BitmapFilterType.as classes/BitmapFilterQuality.as classes/Bitmap.as classes/PixelSnapping.as classes/ImeEvent.as classes/InteractiveObject.as classes/Keyboard.as classes/KeyLocation.as classes/KeyboardEvent.as classes/TextLineMetrics.as classes/Loader.as classes/LoaderInfo.as classes/SecurityDomain.as classes/LoaderContext.as classes/LocalConnection.as classes/MMExecute.as classes/Matrix.as classes/ContextMenuEvent.as classes/Microphone.as classes/MorphShape.as classes/Mouse.as classes/MouseEvent.as classes/Sprite.as classes/Scene.as classes/FrameLabel.as classes/MovieClip.as classes/NetConnection.as classes/NetStatusEvent.as classes/NetStream.as classes/NetFilterEvent.as classes/ObjectEncoding.as classes/Point.as classes/PrintJob.as classes/PrintJobOptions.as classes/PrintJobOrientation.as classes/SWFVersion.as classes/ActionScriptVersion.as classes/ProductManager.as classes/Profiler.as classes/ProgressEvent.as classes/Proxy.as classes/Rectangle.as classes/Responder.as classes/Security.as classes/SecurityPanel.as classes/SecurityErrorEvent.as classes/Shape.as classes/SharedObject.as classes/Socket.as classes/Sound.as classes/ID3Info.as classes/SoundLoaderContext.as classes/SoundChannel.as classes/SoundTransform.as classes/SoundMixer.as classes/Stage.as classes/StageAlign.as classes/StageDisplayState.as classes/StageQuality.as classes/StageScaleMode.as classes/StaticText.as classes/StatusEvent.as classes/StyleSheet.as classes/SyncEvent.as classes/System.as classes/Capabilities.as classes/IME.as classes/IMEConversionMode.as classes/TextExtent.as classes/TextField.as classes/TextFieldAutoSize.as classes/TextFieldType.as classes/TextFormat.as classes/TextFormatDisplay.as classes/TextFormatAlign.as classes/TextRenderer.as classes/AntiAliasType.as classes/SharedObjectFlushStatus.as classes/DisplayModeType.as classes/GridFitType.as classes/TextColorType.as classes/TextDisplayMode.as classes/FontStyle.as classes/TextRun.as classes/TextSnapshot.as classes/Timer.as classes/SetIntervalTimer.as classes/TimerEvent.as classes/Transform.as classes/URLLoader.as classes/URLLoaderDataFormat.as classes/URLRequest.as classes/URLRequestHeader.as classes/URLRequestMethod.as classes/URLStream.as classes/URLVariables.as classes/Video.as classes/XMLNode.as classes/XMLNodeType.as classes/XMLDocument.as classes/XMLParser.as classes/XMLSocket.as classes/XMLTag.as classes/XMLUI.as ../avmplus/extensions/Dictionary.as flash_net.as" />
            <jvmarg value="-ea" />
            <sysproperty key="AVMPLUS" value=""/>
            <sysproperty key="AS3" value=""/>
            <classpath>
                <pathelement location="${basedir}/../../lib/asc.jar"/>
            </classpath>
        </java>
        <copy file="${avmglue}/playerglobal.abc" tofile="${playerglobal.dest}" />
    </target>
	<target name="jar" depends="classes" >
		<mkdir dir="${lib.dir}" />
		<mkdir dir="${basedir}/classes/META-INF"/>
        <copy file="${root.dir}/../../LICENSE.base" tofile="${basedir}/classes/META-INF/LICENSE"/>
        <copy file="${root.dir}/../../NOTICE.asc" tofile="${basedir}/classes/META-INF/NOTICE"/>

		<jar file="${lib.dir}/asc.jar" basedir="${basedir}/classes" includes="macromedia/asc/**/*,macromedia/abc/**/*,adobe/abc/**/*">
		    <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Main-Class" value="macromedia.asc.embedding.Main"/>
                <attribute name="Class-Path" value=""/>
                <attribute name="Implementation-Title" value="ActionScript Compiler (asc)"/>
                <attribute name="Implementation-Version" value="1.0 build ${build.number}"/>
            </manifest>
        </jar>
		<jar file="${lib.dir}/abcdump.jar">
            <manifest>
                <attribute name="Main-Class" value="macromedia.abc.Printer"/>
                <attribute name="Class-Path" value="asc.jar"/>
                <attribute name="Implementation-Version" value="1.0 build ${build.number}"/>
            </manifest>
        </jar>
		<jar file="${lib.dir}/ash.jar">
            <manifest>
                <attribute name="Main-Class" value="macromedia.asc.embedding.Shell"/>
                <attribute name="Class-Path" value="asc.jar"/>
                <attribute name="Implementation-Version" value="1.0 build ${build.number}"/>
            </manifest>
        </jar>
	</target>
	
	<target name="asc-coverage-jar" depends="classes" >
		<mkdir dir="${lib.dir}" />
		<jar file="${lib.dir}/asc.jar" basedir="${basedir}/classes" includes="macromedia/asc/**/*,macromedia/abc/**/*,adobe/abc/**/*">
            <manifest>
                <attribute name="Main-Class" value="macromedia.asc.embedding.Main"/>
                <attribute name="Class-Path" value="${lib.dir}/clover.jar"/>
                <attribute name="Implementation-Version" value="1.0 build ${build.number}"/>
            </manifest>
        </jar>
	</target>

    <target name="run-depend" if="src.depend">
        <echo level="info" message="Removing class files that changed and dependent class files."/>
        <depend cache="${basedir}/classes" srcdir="${java.src.dir}" destdir="${basedir}/classes"/>
    </target>

    <target name="classes" depends="run-depend">
	    <mkdir dir="${lib.dir}" />
        <mkdir dir="${basedir}/classes"/>
        <javac source="${javac.src}" target="${javac.src}" encoding="UTF-8" debug="${src.debug}" destdir="${basedir}/classes" srcdir="${java.src.dir}" includes="**/*.java">
			<classpath>
				<fileset dir="${lib.dir}" includes="*.jar"/>
			</classpath>
 		</javac>
        <!-- Create a version.properties file with the build number. -->
        <!-- This file is read by getBuild() in Version.java -->
        <!-- It is created in the same directory as Version.class -->
        <tstamp>
        	<format property="build.number.date" pattern="yyyyMMdd" />
        </tstamp>
        <echo file="${basedir}/classes/macromedia/asc/util/version.properties" append="false">build=${build.number.date}</echo>
    </target>

    <!-- Downgrades the generated bytecode to be compatible with Java 1.4.2; no longer used. -->
    <target name="downgrade">
		<!-- compile the downgrade utility -->
		<javac debug="true" destdir="${basedir}/classes" srcdir="${basedir}/src" includes="**/*.java">
			<classpath>
				<fileset dir="${basedir}/lib" includes="*.jar"/>
			</classpath>
		</javac>
		<!-- run it on the asc classes -->
		<java classname="Downgrader" fork="true" failonerror="true">
			<classpath>
				<pathelement location="${basedir}/classes" />
				<fileset dir="${basedir}/lib" includes="*.jar"/>
			</classpath>
			<arg value="${basedir}/classes/macromedia/asc"/>
			<arg value="${basedir}/classes/macromedia/abc"/>
			<!-- <arg value="${basedir}/classes/adobe/asc/authoring"/> -->
		</java>
	</target>
	<target name="full">
		<apply executable="${basedir}/run_il.bat">
			<fileset dir="${root.dir}/test" includes="**/*.as"/>
		</apply>
	</target>
	<target name="sanity">
		<apply executable="${basedir}/run_il.bat">
			<fileset dir="${root.dir}/test/sanity" includes="**/*.as"/>
		</apply>
	</target>
	<!--
	<target name="diff">
		<mkdir dir="${basedir}/results"/>
		<move todir="${basedir}/results">
			<fileset dir="${root.dir}/test" includes="**/*.diff"/>
		</move>
		<java classname="DeleteEmptyFile" fork="true" failonerror="true">
			<classpath>
				<pathelement location="${basedir}/classes" />
			</classpath>
			<arg value="${basedir}/results"/>
		</java>
	</target>
	-->
	<target name="clean">
		<delete failonerror="false" >
			<fileset file="${root.dir}/lib/abcdump.jar"/>
			<fileset file="${root.dir}/lib/ash.jar"/>
			<fileset file="${basedir}/lib/asc.jar"/>
			<fileset file="${root.dir}/lib/asc.jar"/>
			<fileset file="${root.dir}/lib/asc_authoring.jar"/>
			<fileset file="${root.dir}/lib/global.abc"/>
		</delete>
		<delete dir="${basedir}/classes" failonerror="false"/>
        <delete dir="${lib.dir}"/>
	</target>
	<target name="with.clover">
		<taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
    	<clover-setup>
      		<fileset dir="${java.src.dir}" excludes="macromedia/asc/parser/Scanner.java" />
    	</clover-setup>
 	</target>
	<target name="clover.html">
		<!-- generate a historypoint for the current coverage -->
   		<clover-historypoint historyDir="${clover_hist}"/>
   		<clover-report>
     		<current outfile="${clover_html}">
       			<format type="html" />
       			<fileset dir="${java.src.dir}" 
        			excludes="macromedia/asc/parser/Scanner.java,macromedia/asc/util/*Decimal*.java,macromedia/asc/embedding/BatchCompiler.java"/>
            	<columns>
            		<coveredStatements format="%"/>
            		<coveredMethods format="%"/>  
            		<totalPercentageCovered format="bar"/>
            	</columns>            	
     		</current>
     		
     		<!-- generate historical report -->
     		<historical outfile="${clover_html}/historical.html" historyDir="${clover_hist}">
     			<format type="html" />
     		</historical>
    	</clover-report>
    </target>
 
    <target name="findbugs.check">
        <property name="findbugs.home" value="lib/tools/findbugs-1.3.4"/>
        <path id="findbugs.class.path">
            <fileset dir="${findbugs.home}/lib">
                <include name="**/*.jar"/>
            </fileset>
        </path>
    	<condition property="findbugs.available">
            <available classname="edu.umd.cs.findbugs.anttask.FindBugsTask" 
                classpathref="findbugs.class.path"/>
    	</condition>
        <fail message="Unable to run FindBugs.  FindBugs was expected in ${findbugs.home}/lib but was not found."
              unless="findbugs.available"/>
    </target>

    <target name="findbugs" if="findbugs.available" depends="findbugs.check">

        <delete file="findbugsReport.xml" failOnError="false" />

        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
            classpathref="findbugs.class.path" />

        <findbugs home="${findbugs.home}"
            output="xml:withMessages"
            outputFile="findbugsReport.xml"
            jvmargs="-Xmx512m"
            workHard="true"
            projectName="ASC">
            <!-- classes to inspect -->
            <class location="${lib.dir}/*.jar" />
            <!-- path to source for inspected classes -->
            <sourcePath path="${java.src.dir}" />
            <!-- classes to exclude from reporting -->
            <auxClasspath>
                <fileset dir="lib/" >
                    <include name="bcel.jar" />
                    <include name="Regex.jar" />
                </fileset>
            </auxClasspath>
        </findbugs>
    </target>

    <target name="findbugs-report" if="findbugs.available" depends="findbugs.check">
        
        <!-- ensure xml report exists -->
        <fail message="The FindBugs xml report was not found.  Please run the 'findbugs' target first.">
            <condition>
                <not>
                    <available file="findbugsReport.xml"/>
                </not>
            </condition>
        </fail>
        
        <delete file="findbugsReport.htm" failOnError="false" />

        <!-- create html report -->
        <xslt in="findbugsReport.xml" out="findbugsReport.htm"
            style="${findbugs.home}/src/xsl/default.xsl" />

        <!-- launch gui viewer with access to source -->
        <java jar="${findbugs.home}/lib/findbugsGUI.jar"
           fork="true"
           failonerror="true"
           maxmemory="256m"
           classpathref="findbugs.class.path">
            <jvmarg value="-Dfindbugs.home=${findbugs.home}"/>
            <arg line="-loadbugs ${basedir}\findbugsReport.xml"/>
       </java>
    </target>

    <target name="pmd.check">
        <property name="pmd.home" value="${basedir}/lib/tools/pmd"/>
        <fail message="Unable to run PMD.  PMD was expected in ${pmd.home}/lib but was not found.">
            <condition>
                <not>
                    <available file="${pmd.home}" type="dir" />
                </not>
            </condition>
        </fail>
    
        <path id="pmd.class.path">
            <fileset dir="${pmd.home}/lib">
                <include name="**/*.jar"/>
            </fileset>
        </path>
    	<condition property="pmd.available">
            <available classname="net.sourceforge.pmd.ant.PMDTask"
                classpathref="pmd.class.path"/>
    	</condition>
        <fail message="Unable to run PMD.  PMD was expected in ${pmd.home}/lib but was not found."
              unless="pmd.available"/>
    </target>

    <target name="pmd" if="pmd.available" depends="pmd.check">
        <delete file="pmdReport.xml" failOnError="false" />
        
        <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
            <classpath>
                <fileset dir="${pmd.home}">
                    <include name="lib/**/*.jar"/>
                    <include name="rulesets/*.xml"/>
                </fileset>
            </classpath>
        </taskdef>
        
        <pmd shortFilenames="true" excludemarker="NOWARN"
            rulesetfiles="${pmd.home}/rulesets/ascPMDRules.xml">
            <formatter type="xml" toFile="pmdReport.xml" />
            <fileset dir="${java.src.dir}" 
                includes="**/**/*.java" 
                excludes="macromedia/asc/embedding/WarningConstants.java"/>
        </pmd>
    </target>

    <target name="pmd-report" depends="pmd"
        description="Run PMD on code and create html report">
        <delete file="pmdResults.htm" failOnError="false" />
        <!-- create html report -->
        <xslt in="pmdReport.xml" out="pmdReport.htm" 
            style="${pmd.home}/etc/xslt/wz-pmd-report.xslt" /> 
    </target>

</project>
