<?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}/../../licenseParts/LICENSE.base" tofile="${basedir}/classes/META-INF/LICENSE"/>
        <copy file="${root.dir}/../../licenseParts/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>
