initial attempt at compiler build after maven refactor. Attempted to remove the flex-sdk ties
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/ec64c4d4 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/ec64c4d4 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/ec64c4d4 Branch: refs/heads/feature/maven-migration-test Commit: ec64c4d48a89aa31b2d97742d57e9a0004a10699 Parents: 1cda5c4 Author: Alex Harui <aha...@apache.org> Authored: Tue Apr 19 13:21:51 2016 -0700 Committer: Alex Harui <aha...@apache.org> Committed: Fri Apr 22 09:02:56 2016 -0700 ---------------------------------------------------------------------- compiler/build.xml | 711 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 711 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ec64c4d4/compiler/build.xml ---------------------------------------------------------------------- diff --git a/compiler/build.xml b/compiler/build.xml new file mode 100644 index 0000000..8948167 --- /dev/null +++ b/compiler/build.xml @@ -0,0 +1,711 @@ +<?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="compiler" default="main" basedir="."> + + <!-- + + PROPERTIES + + --> + + <!-- The 'compiler' property is the absolute path, with forward slashes, --> + <!-- to the 'compiler' directory that contains this file. --> + <!-- All input paths are expressed as absolute paths starting with ${compiler}. --> + <pathconvert property="compiler" dirsep="/"> + <path location="${basedir}"/> + </pathconvert> + + <!-- The 'env' property contains all the environment variables --> + <property environment="env"/> + + <!-- Properties can be overridden locally by loading a local.properties file --> + <!-- Java 8 users probably need javadoc.params=-Xdoclint:none --> + <property file="${compiler}/local.properties"/> + <property name="javadoc.params" value="" /> + + <!-- The 'sdk' property is the absolute path, with forward slashes, to the compiler/generated/dist/sdk directory --> + <!-- where a Falcon SDK is built --> + <!-- All output paths are expressed as absolute paths starting with ${sdk} --> + <property name="sdk" value="${compiler}/generated/dist/sdk"/> + + <property name="src.depend" value="true"/> + + <!-- Options for <javac> tasks --> + <property name="javac.debug" value="true"/> + <property name="javac.deprecation" value="false"/> + <property name="javac.src" value="1.6"/> + + <!-- JAR manifest entries --> + <property name="manifest.sealed" value="false"/> + <property name="manifest.Implementation-Title" value="Apache Flex Compiler"/> + <property name="manifest.Implementation-Version" value="${release.version}"/> + <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/> + + <property name="compiler.ant.binaries" value="org/apache/flex/compiler/ant/**/*.class"/> + <property name="compiler.font.binaries" value="org/apache/flex/fonts/**"/> + + <!-- label is set by CruiseControl script based on P4 label incrementer --> + <condition property="build.number" value="${label}"> + <isset property="label"/> + </condition> + + <!-- + + CLASSPATHS + + --> + + <path id="classpath"> + <fileset dir="${compiler}/lib" includes="**/*.jar"/> + </path> + + <!-- + + MACROS + + --> + + <!-- + Defines a <jflex input="..." skeleton="..." output="..."> macro + for using JFlex to generate a Java-based lexer from a .lex file. + --> + <macrodef name="jflex"> + <attribute name="input"/> + <attribute name="skeleton" default="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/skeleton.default"/> + <attribute name="output"/> + <sequential> + <java jar="${compiler}/lib/JFlex.jar" fork="true"> + <arg value="-d"/> + <arg value="@{output}"/> + <arg value="-q"/> + <arg value="@{input}"/> + <arg value="--skel"/> + <arg value="@{skeleton}"/> + </java> + </sequential> + </macrodef> + + <!-- + Defines an <antlr2 input="..." output="..."> macro + for using ANTLR 2 to generate a Java-based parser from a .g file. + --> + <macrodef name="antlr2"> + <attribute name="input"/> + <attribute name="output"/> + <sequential> + <mkdir dir="@{output}"/> + <dirname property="antlr2.dirname.@{input}" file="@{input}"/> + <antlr target="@{input}" outputdirectory="@{output}" dir="${antlr2.dirname.@{input}}"> + <classpath> + <pathelement path="${compiler}/lib/antlr.jar"/> + </classpath> + </antlr> + </sequential> + </macrodef> + + <!-- + Defines an <antlr3 input="..." output="..."> macro + for using ANTLR 3 to generate a Java-based parser from a .g file. + --> + <macrodef name="antlr3"> + <attribute name="input"/> + <attribute name="output"/> + <sequential> + <mkdir dir="@{output}"/> + <!-- Call antlr3 on command-line because we can't update Ant library path. --> + <java jar="${compiler}/lib/antlr.jar" fork="yes" failonerror="yes"> + <arg value="@{input}"/> + <arg value="-o"/> + <arg value="@{output}"/> + </java> + </sequential> + </macrodef> + + <!-- + Defines a <jburg input="..." output="..."> macro + for using JBurg to generate a Java-based BURM from a .jbg file. + --> + <macrodef name="jburg"> + <attribute name="input"/> + <attribute name="output"/> + <sequential> + <dirname property="jburg.dirname.@{input}" file="@{input}"/> + <dirname property="jburg.dirname.@{output}" file="@{output}"/> + <basename property="jburg.basename.@{output}" file="@{output}"/> + <mkdir dir="${jburg.dirname.@{output}}"/> + <java classname="jburg.burg.JBurgMain" + classpath="${compiler}/generated/classes" + fork="true" failonerror="true" + dir="${jburg.dirname.@{input}}"> + <arg value="@{input}"/> + <arg value="-outputdir"/> + <arg value="${jburg.dirname.@{output}}"/> + <arg value="-outputfile"/> + <arg value="${jburg.basename.@{output}}"/> + <arg value="-g"/> + <classpath> + <pathelement path="${compiler}/generated/classes"/> + <pathelement path="${compiler}/lib/antlr.jar"/> + <pathelement path="${compiler}/lib/jburg.jar"/> + </classpath> + </java> + </sequential> + </macrodef> + + <!-- + Defines an <annotate.class file="..." annotation="..."> macro + used for inserting @SuppressWarnings(...) into generated Java classes, + in order to keep the build warning-free. + ANTLR and JBurg generate code that isn't warning-free in Eclipse. + --> + <macrodef name="annotate.class"> + <attribute name="file"/> + <attribute name="annotation"/> + <sequential> + <java classname="org.apache.flex.compiler.tools.annotate.AnnotateClass" output="@{file}" fork="false"> + <classpath> + <path refid="classpath"/> + <pathelement location="${compiler}/generated/classes"/> + </classpath> + <arg value="@{file}"/> + <arg value="@{annotation}"/> + </java> + </sequential> + </macrodef> + + <!-- + + SETUP + + --> + + <target name="download" description="Downloads third-party JARs"> + <ant antfile="${compiler}/downloads.xml" dir="${compiler}"/> + <delete dir="${compiler}/in"/> + </target> + + <target name="setup" depends="download" description="Does prelimary build setup"> + </target> + + <!-- + + GENERATION OF JAVA CODE WITH JFLEX + + --> + + <target name="set.raw.as.tokenizer.uptodate"> + <uptodate property="raw.as.tokenizer.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/RawASTokenizer.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as"> + <include name="RawASTokenizer.lex"/> + <include name="skeleton.falcon"/> + </srcfiles> + </uptodate> + </target> + + <target name="raw.as.tokenizer" depends="set.raw.as.tokenizer.uptodate" unless="raw.as.tokenizer.uptodate" + description="Generates RawASTokenizer.java"> + <echo message="Generating RawASTokenizer"/> + <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASTokenizer.lex" + skeleton="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/skeleton.falcon" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/> + </target> + + <target name="set.raw.asdoc.tokenizer.uptodate"> + <uptodate property="raw.asdoc.tokenizer.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as"> + <include name="RawASDocTokenizer.lex"/> + <include name="skeleton.default"/> + </srcfiles> + </uptodate> + </target> + + <target name="raw.asdoc.tokenizer" depends="set.raw.asdoc.tokenizer.uptodate" unless="raw.asdoc.tokenizer.uptodate" + description="Generates RawASDocTokenizer.java"> + <echo message="Generating RawASDocTokenizer"/> + <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.lex" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/> + </target> + + <target name="set.raw.mxml.tokenizer.uptodate"> + <uptodate property="raw.mxml.tokenizer.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml"> + <include name="RawMXMLTokenizer.lex"/> + <include name="skeleton.default"/> + </srcfiles> + </uptodate> + </target> + + <target name="raw.mxml.tokenizer" depends="set.raw.mxml.tokenizer.uptodate" unless="raw.mxml.tokenizer.uptodate" + description="Generates RawMXMLTokenizer.java"> + <echo message="Generating RawMXMLTokenizer"/> + <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/mxml"/> + </target> + + <target name="jflex" depends="raw.as.tokenizer, raw.asdoc.tokenizer, raw.mxml.tokenizer" + description="Generates Java code with JFlex"/> + + <!-- + + GENERATION OF JAVA CODE WITH ANTLR + + --> + + <target name="set.as.parser.uptodate"> + <uptodate property="as.parser.uptodate" + srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/ASParser.g" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASParser.java"/> + </target> + + <target name="as.parser" depends="annotate.class, set.as.parser.uptodate" unless="as.parser.uptodate"> + <echo message="Generating ASParser and ASTokenTypes"/> + <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/ASParser.g" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASParser.java" + annotation='@SuppressWarnings("unused")'/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASTokenTypes.java" + annotation='@SuppressWarnings("unused")'/> + </target> + + <target name="set.metadata.parser.uptodate"> + <uptodate property="metadata.parser.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as"> + <include name="MetadataParser.g"/> + <include name="ImportMetadataTokenTypes.txt"/> + </srcfiles> + </uptodate> + </target> + + <target name="metadata.parser" depends="annotate.class, set.metadata.parser.uptodate" unless="metadata.parser.uptodate"> + <echo message="Generating MetadataParser and MetadataTokenTypes"/> + <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.g" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java" + annotation='@SuppressWarnings("all")'/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataTokenTypes.java" + annotation='@SuppressWarnings("unused")'/> + </target> + + <target name="set.css.lexer.and.parser.uptodate"> + <uptodate property="css.lexer.and.parser.uptodate" + srcfile="${compiler}/src/org/apache/flex/compiler/internal/css/CSS.g" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSParser.java"/> + </target> + + <target name="css.lexer.and.parser" depends="annotate.class, set.css.lexer.and.parser.uptodate" unless="css.lexer.and.parser.uptodate"> + <echo message="Generating CSSLexer and CSSParser"/> + <antlr3 input="${compiler}/src/org/apache/flex/compiler/internal/css/CSS.g" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/css"/> + <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSLexer.java" + annotation='@SuppressWarnings("unused")'/>--> + <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSParser.java" + annotation='@SuppressWarnings("unused")'/>--> + </target> + + <target name="set.css.tree.uptodate"> + <uptodate property="css.tree.uptodate" + srcfile="${compiler}/src/org/apache/flex/compiler/internal/css/CSSTree.g" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSTree.java"/> + </target> + + <target name="css.tree" depends="annotate.class, set.css.tree.uptodate" unless="css.tree.uptodate"> + <echo message="Generating CSSTree"/> + <antlr3 input="${compiler}/src/org/apache/flex/compiler/internal/css/CSSTree.g" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/css"/> + <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSTree.java" + annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>--> + </target> + + <target name="antlr" depends="as.parser, metadata.parser, css.lexer.and.parser, css.tree" + description="Generates Java code with ANTLR"/> + + <!-- + + GENERATION OF JAVA CODE WITH JBURG + + --> + + <target name="set.cmc.emitter.uptodate"> + <uptodate property="cmc.emitter.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/as/codegen"> + <include name="*.jbg"/> + </srcfiles> + </uptodate> + </target> + + <target name="cmc.emitter" depends="annotate.class, node.adapter, unknown.tree.handler.patterns, set.cmc.emitter.uptodate" unless="cmc.emitter.uptodate"> + <echo message="Generating CmcEmitter"/> + <jburg input="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/cmc.jbg" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java" + annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/> + </target> + + <target name="set.css.emitter.uptodate"> + <uptodate property="css.emitter.uptodate" + targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"> + <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/css/codegen"> + <include name="css.jbg"/> + <include name="CSSPatterns.jbg"/> + <include name="CSSRules.jbg"/> + </srcfiles> + </uptodate> + </target> + + <target name="css.emitter" depends="annotate.class, set.css.emitter.uptodate" unless="css.emitter.uptodate"> + <echo message="Generating CSSEmitter"/> + <jburg input="${compiler}/src/org/apache/flex/compiler/internal/css/codegen/css.jbg" + output="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"/> + <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java" + annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/> + </target> + + <target name="jburg" depends="cmc.emitter, css.emitter" + description="Generates Java code with JBurg"/> + + <!-- + + ECLIPSE SETUP + + --> + + <target name="eclipse" depends="setup, jflex, antlr, jburg" + description="Prepares for building in Eclipse by generating Java code with JFlex, ANTLR, and JBurg"/> + + <!-- + + JAVADOC + + --> + + <target name="set.javadoc.zip.uptodate"> + <uptodate property="javadoc.zip.uptodate" + targetfile="${compiler}/generated/javadoc.zip"> + <srcfiles dir="${compiler}/src"> + <include name="**/*.java"/> + </srcfiles> + <srcfiles dir="${compiler}/generated/src"> + <include name="**/*.java"/> + </srcfiles> + </uptodate> + </target> + + <target name="javadoc" depends="eclipse, set.javadoc.zip.uptodate" unless="javadoc.zip.uptodate" + description="Builds Javadoc"> + <javadoc destdir="${compiler}/generated/javadoc" useexternalfile="yes" overview="${compiler}/src/overview.html" failonerror="true" maxmemory="512m" additionalparam="${javadoc.params}"> + <sourcefiles> + <fileset dir="${compiler}/src" includes="**/*.java"/> + <fileset dir="${compiler}/generated/src" includes="**/*.java"/> + </sourcefiles> + <classpath> + <path refid="classpath"/> + <pathelement location="${ant.core.lib}"/> + </classpath> + <tag name="note" description="Note:"/> + <tag name="post" description="Postcondition:"/> + <tag name="pre" description="Precondition:"/> + </javadoc> + <zip destfile="${compiler}/generated/javadoc.zip"> + <zipfileset dir="${compiler}/generated/javadoc" prefix="javadoc"/> + </zip> + </target> + + <!-- + + BUILDING + + --> + + <target name="src.depend" if="src.depend"> + <depend srcdir="${compiler}/src;${compiler}/generated/src" + destdir="${compiler}/generated/classes" cache="${compiler}/generated/classes"/> + </target> + + <target name="compile" depends="eclipse, src.depend" description="compile"> + <javac debug="${javac.debug}" deprecation="${javac.deprecation}" + includes="**/*.java" destdir="${compiler}/generated/classes" classpathref="classpath" includeAntRuntime="true" + source="${javac.src}" target="${javac.src}"> + <src path="${compiler}/src"/> + <src path="${compiler}/generated/src"/> + <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/> + </javac> + <copy todir="${compiler}/generated/classes"> + <fileset dir="${compiler}/src" includes="**/*.properties"/> + </copy> + <!-- Copy the config file for the flex-tool-api. --> + <copy todir="${compiler}/generated/classes/META-INF/services" + file="src/META-INF/services/org.apache.flex.tools.FlexToolGroup"/> + </target> + + <target name="set.messages.en.uptodate"> + <uptodate property="messages.en.uptodate" + targetfile="${compiler}/generated/classes/org/apache/flex/compiler/messages_en.properties"> + <srcfiles dir="${compiler}/generated/classes/org/apache/flex/compiler/problems"> + <include name="*Problem.class"/> + </srcfiles> + </uptodate> + </target> + + <target name="localization" depends="compile, problem.localizer, set.messages.en.uptodate" unless="messages.en.uptodate" + description="Creates message_en.properties file"> + <echo message="Creating messages_en.properties file for compiler problem localization"/> + <java classname="org.apache.flex.compiler.tools.ProblemLocalizer" fork="true"> + <classpath> + <pathelement location="${compiler}/generated/classes"/> + <fileset dir="${compiler}/lib" includes="**/*.jar"/> + </classpath> + <!-- arg0: location of directory to search for problem class files --> + <arg value="${compiler}/generated/classes/org/apache/flex/compiler/problems"/> + <!-- arg1: location of where to write messages_en.properties --> + <arg value="${compiler}/generated/classes/org/apache/flex/compiler"/> + </java> + </target> + + <target name="version-info" unless="build.number"> + <property name="build.number" value="0"/> + </target> + + <target name="set.compiler.jar.uptodate"> + <uptodate property="compiler.jar.uptodate" + targetfile="${sdk}/lib/compiler.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="compiler.jar" depends="compile, localization, version-info, set.compiler.jar.uptodate" unless="compiler.jar.uptodate" + description="Builds compiler.jar"> + <mkdir dir="${sdk}/lib"/> + <copy file="${basedir}/../LICENSE.base" tofile="${compiler}/generated/classes/META-INF/LICENSE"/> + <copy file="${basedir}/../NOTICE.base" tofile="${compiler}/generated/classes/META-INF/NOTICE"/> + <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/classes" includes="**/*.properties,org/apache/**/*,META-INF/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Class-Path" value="external/antlr.jar external/commons-cli.jar external/commons-io.jar external/guava.jar external/lzma-sdk.jar external/flex-tool-api.jar .."/> + <!-- The .. in the line above allows the compiler to load the env.properties file --> + </manifest> + </jar> + </target> + + <target name="set.falcon.asc.jar.uptodate"> + <uptodate property="falcon.asc.jar.uptodate" + targetfile="${sdk}/lib/falcon-asc.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.asc.jar" depends="compiler.jar, set.falcon.asc.jar.uptodate" unless="falcon.asc.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-asc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ASC Command Line Compiler"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Main-Class" value="org.apache.flex.compiler.clients.ASC"/> + <attribute name="Class-Path" value="compiler.jar"/> + </manifest> + </jar> + </target> + + <target name="set.falcon.mxmlc.jar.uptodate"> + <uptodate property="falcon.mxmlc.jar.uptodate" + targetfile="${sdk}/lib/falcon-mxmlc.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.mxmlc.jar" depends="compiler.jar, set.falcon.mxmlc.jar.uptodate" unless="falcon.mxmlc.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-mxmlc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - MXMLC Command Line Compiler"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Main-Class" value="org.apache.flex.compiler.clients.MXMLC"/> + <attribute name="Class-Path" value="compiler.jar"/> + </manifest> + </jar> + </target> + + <target name="set.falcon.compc.jar.uptodate"> + <uptodate property="falcon.compc.jar.uptodate" + targetfile="${sdk}/lib/falcon-compc.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.compc.jar" depends="compiler.jar, set.falcon.compc.jar.uptodate" unless="falcon.compc.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-compc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - COMPC Command Line Compiler"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Main-Class" value="org.apache.flex.compiler.clients.COMPC"/> + <attribute name="Class-Path" value="compiler.jar"/> + </manifest> + </jar> + </target> + + <target name="set.falcon.optimizer.jar.uptodate"> + <uptodate property="falcon.optimizer.jar.uptodate" + targetfile="${sdk}/lib/falcon-optimizer.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.optimizer.jar" depends="compiler.jar, set.falcon.optimizer.jar.uptodate" unless="falcon.optimizer.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-optimizer.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - Apache SWF Optimizer"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Main-Class" value="org.apache.flex.compiler.clients.Optimizer"/> + <attribute name="Class-Path" value="compiler.jar"/> + </manifest> + </jar> + </target> + + <target name="set.falcon.swfdump.jar.uptodate"> + <uptodate property="falcon.swfdump.jar.uptodate" + targetfile="${sdk}/lib/falcon-swfdump.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.swfdump.jar" depends="compiler.jar, set.falcon.swfdump.jar.uptodate" unless="falcon.swfdump.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-swfdump.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create"> + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - SWF Dump Command Line utility"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Main-Class" value="org.apache.flex.swf.io.SWFDump"/> + <attribute name="Class-Path" value="compiler.jar commons-io.jar"/> + </manifest> + </jar> + </target> + + <target name="set.falcon.flextasks.jar.uptodate"> + <uptodate property="falcon.flextasks.jar.uptodate" + targetfile="${sdk}/lib/falcon-flextasks.jar"> + <srcfiles dir="${compiler}/generated/classes"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </srcfiles> + </uptodate> + </target> + + <target name="falcon.flextasks.jar" depends="compiler.jar, set.falcon.flextasks.jar.uptodate" unless="falcon.flextasks.jar.uptodate"> + <mkdir dir="${sdk}/lib"/> + <jar file="${sdk}/lib/falcon-flexTasks.jar" basedir="${compiler}/generated/classes" > + <include name="META-INF/LICENSE"/> + <include name="META-INF/NOTICE"/> + <manifest> + <attribute name="Sealed" value="${manifest.sealed}"/> + <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ant Tasks"/> + <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/> + <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/> + <attribute name="Class-Path" value="compiler.jar"/> + </manifest> + <fileset dir="${compiler}" includes="flexTasks.tasks"/> + <fileset dir="${compiler}/generated/classes" includes="${compiler.ant.binaries}"/> + </jar> + </target> + + <target name="jar" depends="compiler.jar, falcon.asc.jar, falcon.mxmlc.jar, falcon.compc.jar, falcon.optimizer.jar, falcon.swfdump.jar, falcon.flextasks.jar" + description="Creates JAR files"/> + + <!-- + + SDK + + --> + + <target name="sdk" depends="jar" description="Builds a Falcon SDK"/> + + <target name="main" depends="sdk" description="Default target - Builds a Falcon SDK"> + <tstamp> + <format property="build.datetime" pattern="MM/dd/yyyy hh:mm:ss aa"/> + </tstamp> + <echo>compiler main completed on ${build.datetime}</echo> + </target> + + <!-- + + CLEANUP + + --> + + <target name="clean" description="clean"> + <delete dir="${compiler}/generated"/> + </target> + + <target name="wipe" depends="clean" description="Wipes everything that didn't come from Git."> + <delete dir="${compiler}/lib"/> + <delete dir="${compiler}/utils"/> + </target> + + </project>