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