| <?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="falcon-js" default="jar" basedir="."> |
| |
| <pathconvert property="basedir1" dirsep="/"> |
| <path location="${basedir}"/> |
| </pathconvert> |
| |
| <property name="build.version" value="329449.1"/> |
| <property name="src" value="${basedir1}/src"/> |
| <property name="lib" value="${basedir1}/lib"/> |
| |
| <property name="falcon.basedir" value="${basedir1}/../compiler"/> |
| <property name="falcon.lib.dir" value="${falcon.basedir}/lib"/> |
| <property name="falcon.dist.dir" value="${falcon.basedir}/generated/dist"/> |
| <property name="falcon.src" value="${falcon.basedir}/src"/> |
| |
| <property name="build.output" value="${basedir1}/build"/> |
| <property name="build.lib.dir" value="${build.output}/lib"/> |
| <property name="build.generated.src" value="${build.output}/generatedSrc"/> |
| |
| <property name="classes.dir" value="${build.output}/classes"/> |
| <property name="tests.results" value="${build.output}/tests/results"/> |
| <property name="asc.jar" value="${build.lib.dir}/asc.jar"/> |
| <property name="mxmlc.jar" value="${build.lib.dir}/mxmlc.jar"/> |
| <property name="compc.jar" value="${build.lib.dir}/compc.jar"/> |
| <property name="jsc.jar" value="${build.lib.dir}/jsc.jar"/> |
| |
| <property name="as3.codegen.generated.src" value="${build.generated.src}/as3.codegen"/> |
| <property name="as3.codegen.package.dir" value="org/apache/flex/compiler/internal/as/codegen"/> |
| <property name="falcon.as3.codegen.dir" value="${falcon.basedir}/src/${as3.codegen.package.dir}"/> |
| |
| <property name="ant.build.javac.target" value="1.6"/> |
| <property name="ant.build.javac.source" value="1.6"/> |
| |
| <property name="javac.debug" value="true"/> |
| <property name="javac.deprecation" value="false"/> |
| |
| <property name="falcon-js-as3.codegen" value="${basedir1}/src/${as3.codegen.package.dir}"/> |
| <property name="jburg.jar" value="${falcon.lib.dir}/jburg.jar"/> |
| <property name="antlr" value="${falcon.lib.dir}/antlr.jar"/> |
| |
| <property name="tests.root" value="${basedir1}/../compiler.tests"/> |
| <property name="tamarin.dir" value="${tests.root}/resources/tamarin"/> |
| |
| <property name="manifest.Implementation-Vendor" value="Adobe Systems Incorporated"/> |
| <property name="manifest.Implementation-Version" value="0.${build.version}"/> |
| |
| <property name="localizationIntermediates.dir" value="${basedir1}/intermediates/localization"/> |
| <property name="errorMessagesPath" value="org/apache/flex/compiler/problems"/> |
| <property name="errorMessagesSrc.dir" value="${basedir1}/localization/src/${errorMessagesPath}"/> |
| <available property="haveLocalizedErrorMessages.set" file="${errorMessagesSrc.dir}" type="dir"/> |
| |
| <macrodef name="jburg-js"> |
| <attribute name="spec"/> |
| <attribute name="output"/> |
| <sequential> |
| <dirname property="as3.codegen.emitter.@{spec}.dirname" file="@{spec}"/> |
| <dirname property="as3.codegen.emitter.@{output}.dirname" file="@{output}"/> |
| <basename property="as3.codegen.emitter.@{output}.basename" file="@{output}"/> |
| <mkdir dir="${as3.codegen.emitter.@{output}.dirname}"/> |
| <java classname="jburg.burg.JBurgMain" |
| classpath="${classes.dir}" |
| fork="true" |
| failonerror="true" |
| dir="${as3.codegen.emitter.@{spec}.dirname}" > |
| <arg value="@{spec}"/> |
| <arg value="-outputdir"/> |
| <arg value="${as3.codegen.emitter.@{output}.dirname}"/> |
| <arg value="-outputfile"/> |
| <arg value="${as3.codegen.emitter.@{output}.basename}"/> |
| <arg value="-g"/> |
| <classpath> |
| <pathelement path="${jburg.jar}"/> |
| <pathelement path="${antlr}"/> |
| <pathelement path="${classes.dir}"/> |
| </classpath> |
| </java> |
| </sequential> |
| </macrodef> |
| |
| <path id="classpath"> |
| <filelist dir="${build.lib.dir}"> |
| <file name="commons-cli.jar"/> |
| <file name="commons-io.jar"/> |
| <file name="guava.jar"/> |
| </filelist> |
| <filelist dir="${build.lib.dir}/google/closure-compiler"> |
| <file name="compiler.jar"/> |
| </filelist> |
| </path> |
| |
| <target name="localizeCompilerErrors" if="haveLocalizedErrorMessages.set"> |
| <sequential> |
| <echo level="info" message="Copying localization files to ${localizationIntermediates.dir}."/> |
| <mkdir dir="${localizationIntermediates.dir}"/> |
| <native2ascii encoding="UTF-8" src="${errorMessagesSrc.dir}" dest="${localizationIntermediates.dir}/${errorMessagesPath}" includes="**/*.xlr,**/*.properties"/> |
| </sequential> |
| </target> |
| |
| <target name="createBuildFolders"> |
| <mkdir dir="${classes.dir}"/> |
| </target> |
| |
| <target name="copyFiles" depends="createBuildFolders"> |
| <copy todir="${build.lib.dir}"> |
| <filelist dir="${falcon.lib.dir}"> |
| <file name="antlr.jar"/> |
| <file name="commons-cli.jar"/> |
| <file name="commons-io.jar"/> |
| <file name="guava.jar"/> |
| </filelist> |
| </copy> |
| <copy todir="${build.lib.dir}/google/closure-compiler"> |
| <filelist dir="${lib}/google/closure-compiler"> |
| <file name="compiler.jar"/> |
| </filelist> |
| </copy> |
| </target> |
| |
| <target name="prepare" depends="copyFiles,localizeCompilerErrors"> |
| <echo level="info">${ant.file}</echo> |
| </target> |
| |
| <target name="as3.codegen.support.uptodate"> |
| <echo level="info">${ant.file}</echo> |
| <uptodate property="CmcEmitter.uptodate" |
| targetfile="${as3.codegen.generated.src}/${as3.codegen.package.dir}/CmcJSEmitter.java"> |
| <srcfiles dir="${falcon-js-as3.codegen}" includes="*.jbg"/> |
| <srcfiles dir="${falcon.as3.codegen.dir}" includes="*.jbg"/> |
| </uptodate> |
| </target> |
| |
| <target name="as3.codegen.support" depends="as3.codegen.support.uptodate,createBuildFolders"> |
| <javac debug="${javac.debug}" deprecation="${javac.deprecation}" |
| destdir="${classes.dir}" |
| classpathref="classpath"> |
| <src path="${falcon.src}"/> |
| <include name="**/IASNodeAdapter.java"/> |
| <classpath> |
| <pathelement path="${jburg.jar}"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="as3.codegen.emitter" depends="as3.codegen.support" unless="CmcEmitter.uptodate"> |
| <jburg-js spec="${falcon-js-as3.codegen}/cmc-js.jbg" |
| output="${as3.codegen.generated.src}/${as3.codegen.package.dir}/CmcJSEmitter.java"/> |
| </target> |
| |
| <target name="compile" depends="prebuild,prepare,as3.codegen.emitter" description="compile"> |
| <javac debug="${javac.debug}" deprecation="${javac.deprecation}" |
| includes="**/*.java" |
| excludes="" |
| destdir="${classes.dir}" |
| classpathref="classpath"> |
| <src path="${src}"/> |
| <src path="${as3.codegen.generated.src}"/> |
| <classpath> |
| <pathelement path="${falcon.basedir}/generated/classes"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="prebuild"> |
| <mkdir dir="${lib}" /> |
| <mkdir dir="${lib}/google" /> |
| <mkdir dir="${lib}/google/closure-compiler" /> |
| <ant antfile="${basedir}/downloads.xml" dir="${basedir}"/> |
| </target> |
| |
| <target name="jar" depends="compile"> |
| |
| <property name="jar.classpath" value="antlr.jar commons-cli.jar commons-io.jar org.apache.felix.framework-3.0.2.jar guava.jar google/closure-compiler/compiler.jar ../../lib/compiler.jar"/> |
| |
| <echo message="Building ${jsc.jar}"/> |
| <jar file="${jsc.jar}" basedir="${classes.dir}" |
| includes="**/*.properties,org/apache/**/*" |
| excludes="**/JSDriver*,**/IASNodeAdapter*,org/apache/flex/compiler/internal/parsing/abc/*" > |
| <manifest> |
| <attribute name="Sealed" value="false"/> |
| <attribute name="Implementation-Title" value="JSC Command Line Compiler"/> |
| <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> |
| <attribute name="Implementation-Version" value="${manifest.Implementation-Version}"/> |
| <attribute name="Class-Path" value="${jar.classpath}"/> |
| </manifest> |
| </jar> |
| |
| <echo message="Building ${mxmlc.jar}"/> |
| <jar file="${mxmlc.jar}" > |
| <manifest> |
| <attribute name="Sealed" value="${manifest.sealed}"/> |
| <attribute name="Implementation-Title" value="MXMLJSC Command Line Compiler"/> |
| <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> |
| <attribute name="Implementation-Version" value="${manifest.Implementation-Version}"/> |
| <attribute name="Main-Class" value="org.apache.flex.compiler.clients.MXMLJSC"/> |
| <attribute name="Class-Path" value="jsc.jar"/> |
| </manifest> |
| </jar> |
| |
| <echo message="Building ${compc.jar}"/> |
| <jar file="${compc.jar}" > |
| <manifest> |
| <attribute name="Sealed" value="${manifest.sealed}"/> |
| <attribute name="Implementation-Title" value="COMPJSC Command Line Compiler"/> |
| <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> |
| <attribute name="Implementation-Version" value="${manifest.Implementation-Version}"/> |
| <attribute name="Main-Class" value="org.apache.flex.compiler.clients.COMPJSC"/> |
| <attribute name="Class-Path" value="jsc.jar"/> |
| </manifest> |
| </jar> |
| |
| <echo message="Copying jars to ${lib}"/> |
| <copy todir="${lib}"> |
| <filelist dir="${build.lib.dir}"> |
| <file name="mxmlc.jar"/> |
| <file name="compc.jar"/> |
| <file name="jsc.jar"/> |
| </filelist> |
| </copy> |
| |
| </target> |
| |
| <target name="super-clean" depends="thirdparty-clean,clean" description="Cleans everything including thirdparty downloads."/> |
| |
| <target name="thirdparty-clean" description="Removes all thirdparty downloads."> |
| <delete failonerror="false" quiet="true" includeemptydirs="true"> |
| <fileset dir="${lib}" /> |
| </delete> |
| <ant antfile="${basedir}/downloads.xml" dir="${basedir}" target="clean"/> |
| </target> |
| |
| <!-- clean --> |
| <target name="clean" > |
| <echo message="${build.output}: cleaning..."/> |
| <delete failonerror="false" quiet="true" includeemptydirs="true" dir="${build.output}/classes"/> |
| <delete failonerror="false" quiet="true" includeemptydirs="true" dir="${build.output}/generatedSrc"/> |
| <delete failonerror="false" quiet="true" includeemptydirs="true" dir="${build.output}/lib"/> |
| <delete failonerror="false" quiet="true" includeemptydirs="true" dir="${localizationIntermediates.dir}"/> |
| </target> |
| |
| <target name="eclipse" depends="as3.codegen.emitter"/> |
| |
| </project> |