<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<parent> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>royale-compiler-parent</artifactId> | |
<version>0.9.8-SNAPSHOT</version> | |
</parent> | |
<artifactId>compiler</artifactId> | |
<version>0.9.8-SNAPSHOT</version> | |
<name>Apache Royale: Compiler: Compiler</name> | |
<description>The Apache Royale Compiler</description> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-jar-plugin</artifactId> | |
<configuration> | |
<archive> | |
<manifestEntries> | |
<Class-Path>external/closure-compiler-v20181210.jar compiler-common.jar external/antlr-2.7.7.jar external/antlr-3.3.jar external/antlr-runtime-3.3.jar external/commons-cli-1.2.jar external/commons-io-2.4.jar external/guava-25.1-jre.jar external/lzma-sdk-4j-9.22.0.jar external/flex-tool-api-1.0.0.jar ..</Class-Path> | |
<!-- <Class-Path>compiler-common.jar external/antlr.jar external/commons-cli.jar external/commons-io.jar external/guava.jar external/lzma-sdk.jar external/flex-tool-api.jar ..</Class-Path> --> | |
</manifestEntries> | |
</archive> | |
</configuration> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-resources-plugin</artifactId> | |
<executions> | |
<execution> | |
<id>copy-externc-resources</id> | |
<phase>process-test-resources</phase> | |
<goals> | |
<goal>copy-resources</goal> | |
</goals> | |
<configuration> | |
<outputDirectory>${basedir}/../compiler-externc/target</outputDirectory> | |
<resources> | |
<resource> | |
<directory>${basedir}/../compiler-externc/src/test/config</directory> | |
</resource> | |
</resources> | |
</configuration> | |
</execution> | |
<execution> | |
<id>copy-custom-resources</id> | |
<phase>process-test-resources</phase> | |
<goals> | |
<goal>copy-resources</goal> | |
</goals> | |
<configuration> | |
<outputDirectory>${basedir}/target</outputDirectory> | |
<resources> | |
<resource> | |
<directory>${basedir}/src/test/config</directory> | |
</resource> | |
</resources> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<!-- | |
Do all the JFlex code generation | |
--> | |
<plugin> | |
<groupId>de.jflex</groupId> | |
<artifactId>maven-jflex-plugin</artifactId> | |
<executions> | |
<execution> | |
<id>generate-raw-as-tokenizer</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<outputDirectory>target/generated-sources/jflex</outputDirectory> | |
<lexDefinitions> | |
<lexDefinition>src/main/jflex/org/apache/royale/compiler/internal/parsing/as/RawASTokenizer.lex</lexDefinition> | |
</lexDefinitions> | |
<skeleton>src/main/jflex/org/apache/royale/compiler/internal/parsing/as/skeleton.royale</skeleton> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-raw-as-doc-tokenizer</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<outputDirectory>target/generated-sources/jflex</outputDirectory> | |
<lexDefinitions> | |
<lexDefinition>src/main/jflex/org/apache/royale/compiler/internal/parsing/as/RawASDocTokenizer.lex</lexDefinition> | |
</lexDefinitions> | |
<skeleton>src/main/jflex/org/apache/royale/compiler/internal/parsing/as/skeleton.default</skeleton> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-raw-mxml-tokenizer</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<outputDirectory>target/generated-sources/jflex</outputDirectory> | |
<lexDefinitions> | |
<lexDefinition>src/main/jflex/org/apache/royale/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex</lexDefinition> | |
</lexDefinitions> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<!-- | |
Do all the Antlr2 code generation | |
--> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-antlr-plugin</artifactId> | |
<executions> | |
<execution> | |
<id>generate-as-parser</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<grammars>org/apache/royale/compiler/internal/parsing/as/ASParser.g</grammars> | |
</configuration> | |
</execution> | |
</executions> | |
<dependencies> | |
<dependency> | |
<groupId>antlr</groupId> | |
<artifactId>antlr</artifactId> | |
<version>2.7.7</version> | |
</dependency> | |
</dependencies> | |
</plugin> | |
<!-- | |
The generation of the metadata-parser requires Antlr to | |
load ImportMetadataTokenTypes.txt. Unfortunately Altlr | |
looks in the current working directory. The only way to | |
force it to work, is to start a new process with the | |
working directory in the directory containing the file. | |
--> | |
<plugin> | |
<groupId>org.codehaus.mojo</groupId> | |
<artifactId>exec-maven-plugin</artifactId> | |
<executions> | |
<execution> | |
<id>generate-metadata-parser</id> | |
<phase>generate-sources</phase> | |
<goals> | |
<goal>exec</goal> | |
</goals> | |
<configuration> | |
<executable>java</executable> | |
<arguments> | |
<argument>-classpath</argument> | |
<classpath /> | |
<arguments>antlr.Tool</arguments> | |
<argument>-o</argument> | |
<argument>../../../../../../../../../../target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as</argument> | |
<argument>MetadataParser.g</argument> | |
</arguments> | |
<workingDirectory>src/main/antlr/org/apache/royale/compiler/internal/parsing/as</workingDirectory> | |
<sourceRoot>target/generated-sources/antlr</sourceRoot> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-test-js-typedefs</id> | |
<phase>test-compile</phase> | |
<goals> | |
<goal>exec</goal> | |
</goals> | |
<configuration> | |
<executable>java</executable> | |
<arguments> | |
<argument>-classpath</argument> | |
<classpath /> | |
<arguments>org.apache.royale.compiler.clients.EXTERNC</arguments> | |
<argument>-load-config+=../compiler-externc/src/test/config/externc-config.xml</argument> | |
</arguments> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-test-js-swc</id> | |
<phase>test-compile</phase> | |
<goals> | |
<goal>exec</goal> | |
</goals> | |
<configuration> | |
<executable>java</executable> | |
<arguments> | |
<argument>-classpath</argument> | |
<classpath /> | |
<arguments>org.apache.royale.compiler.clients.COMPC</arguments> | |
<argument>-load-config+=../compiler-externc/target/compile-as-config.xml</argument> | |
<argument>-output=../compiler-externc/target/js.swc</argument> | |
</arguments> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-test-custom-swc</id> | |
<phase>test-compile</phase> | |
<goals> | |
<goal>exec</goal> | |
</goals> | |
<configuration> | |
<executable>java</executable> | |
<arguments> | |
<argument>-classpath</argument> | |
<classpath /> | |
<arguments>org.apache.royale.compiler.clients.COMPC</arguments> | |
<argument>-load-config+=target/compile-as-config.xml</argument> | |
<argument>-output=target/custom.swc</argument> | |
</arguments> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<!-- | |
Do all the JBurg code generation. | |
--> | |
<plugin> | |
<groupId>net.sourceforge.jburg</groupId> | |
<artifactId>jburg-maven-plugin</artifactId> | |
<extensions>true</extensions> | |
<executions> | |
<execution> | |
<id>generate-css-emitter</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>CSSEmitter.jbg</include> | |
</includes> | |
<sourceDirectory>src/main/jburg/org/apache/royale/compiler/internal/css/codegen</sourceDirectory> | |
<outputDirectory>target/generated-sources/jburg/org/apache/royale/compiler/internal/css/codegen</outputDirectory> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-cmc-emitter</id> | |
<goals> | |
<goal>generate</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>CmcEmitter.jbg</include> | |
</includes> | |
<sourceDirectory>src/main/jburg/org/apache/royale/compiler/internal/as/codegen</sourceDirectory> | |
<outputDirectory>target/generated-sources/jburg/org/apache/royale/compiler/internal/as/codegen</outputDirectory> | |
</configuration> | |
</execution> | |
</executions> | |
<configuration> | |
<!-- debug=true generates the "dump" method for Emitters, which is used for debugging --> | |
<debug>true</debug> | |
</configuration> | |
<dependencies> | |
<!-- this needs to be first in order to patch jburg --> | |
<dependency> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-jburg-types</artifactId> | |
<version>${compiler-jburg-types.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>net.sourceforge.jburg</groupId> | |
<artifactId>jburg</artifactId> | |
<version>1.10.3</version> | |
</dependency> | |
</dependencies> | |
</plugin> | |
<!-- | |
Do all the Antlr3 code generation. | |
--> | |
<plugin> | |
<groupId>org.antlr</groupId> | |
<artifactId>antlr3-maven-plugin</artifactId> | |
<executions> | |
<execution> | |
<id>generate-csslexer-and-cssparser</id> | |
<goals> | |
<goal>antlr</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>CSS.g</include> | |
</includes> | |
<sourceDirectory>src/main/antlr3/org/apache/royale/compiler/internal/css</sourceDirectory> | |
<outputDirectory>target/generated-sources/antlr3/org/apache/royale/compiler/internal/css</outputDirectory> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-csstree</id> | |
<goals> | |
<goal>antlr</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>CSSTree.g</include> | |
</includes> | |
<sourceDirectory>src/main/antlr3/org/apache/royale/compiler/internal/css</sourceDirectory> | |
<outputDirectory>target/generated-sources/antlr3/org/apache/royale/compiler/internal/css</outputDirectory> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<!-- | |
Do all the custom processing with the royale build tools. | |
--> | |
<plugin> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-build-tools</artifactId> | |
<executions> | |
<execution> | |
<id>generate-unknown-tree-handler</id> | |
<goals> | |
<goal>generate-unknown-tree-handler</goal> | |
</goals> | |
<configuration> | |
<inputFile>org/apache/royale/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.xml</inputFile> | |
<outputFile>org/apache/royale/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java</outputFile> | |
</configuration> | |
</execution> | |
<execution> | |
<id>add-suppress-unused-warnings-annotations</id> | |
<goals> | |
<goal>add-class-annotation</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.java</include> | |
<include>antlr/org/apache/royale/compiler/internal/parsing/as/ASTokenTypes.java</include> | |
<include>antlr/org/apache/royale/compiler/internal/parsing/as/MetadataTokenTypes.java</include> | |
</includes> | |
<annotation>@SuppressWarnings("unused")</annotation> | |
</configuration> | |
</execution> | |
<execution> | |
<id>add-suppress-all-warnings-annotations-css</id> | |
<goals> | |
<goal>add-class-annotation</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>antlr3/org/apache/royale/compiler/internal/css/CSSLexer.java</include> | |
<include>antlr3/org/apache/royale/compiler/internal/css/CSSParser.java</include> | |
</includes> | |
<annotation>@SuppressWarnings("all")</annotation> | |
<dateStart>// $ANTLR 3.5.2 ***CSS.g</dateStart> | |
</configuration> | |
</execution> | |
<execution> | |
<id>add-suppress-all-warnings-annotations-csstree</id> | |
<goals> | |
<goal>add-class-annotation</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>antlr3/org/apache/royale/compiler/internal/css/CSSTree.java</include> | |
</includes> | |
<annotation>@SuppressWarnings("all")</annotation> | |
<dateStart>// $ANTLR 3.5.2 ***CSSTree.g</dateStart> | |
</configuration> | |
</execution> | |
<execution> | |
<id>add-suppress-all-warnings-annotations-jburg</id> | |
<goals> | |
<goal>add-class-annotation</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>antlr/org/apache/royale/compiler/internal/parsing/as/MetadataParser.java</include> | |
</includes> | |
<annotation>@SuppressWarnings("all")</annotation> | |
</configuration> | |
</execution> | |
<execution> | |
<id>add-suppress-rawtypes-unchecked-unused-warnings-annotations</id> | |
<goals> | |
<goal>add-class-annotation</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>jburg/org/apache/royale/compiler/internal/css/codegen/CSSEmitter.java</include> | |
<include>jburg/org/apache/royale/compiler/internal/as/codegen/CmcEmitter.java</include> | |
</includes> | |
<annotation>@SuppressWarnings({"rawtypes", "unchecked", "unused"})</annotation> | |
<dateStart>/* Generated</dateStart> | |
<dateEnd> by JBurg</dateEnd> | |
</configuration> | |
</execution> | |
<execution> | |
<id>generate-problems-enum</id> | |
<goals> | |
<goal>generate-problems-enum</goal> | |
</goals> | |
</execution> | |
<execution> | |
<id>generate-problems-resource-bundle</id> | |
<goals> | |
<goal>generate-problems-resource-bundle</goal> | |
</goals> | |
</execution> | |
<execution> | |
<id>order-jflex-switch-statements</id> | |
<goals> | |
<goal>order-jflex-switches</goal> | |
</goals> | |
<configuration> | |
<includes> | |
<include>jflex/org/apache/royale/compiler/internal/parsing/as/RawASDocTokenizer.java</include> | |
<include>jflex/org/apache/royale/compiler/internal/parsing/as/RawASTokenizer.java</include> | |
<include>jflex/org/apache/royale/compiler/internal/parsing/mxml/RawMXMLTokenizer.java</include> | |
</includes> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<!-- Make the surefire execute all unit-tests --> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-surefire-plugin</artifactId> | |
<configuration> | |
<includes> | |
<include>**/*Tests.java</include> | |
</includes> | |
<excludes> | |
<exclude>as/**/*Tests.java</exclude> | |
<exclude>f/**</exclude> | |
<exclude>mxml/tags/**</exclude> | |
<exclude>properties/**</exclude> | |
<exclude>**/MXMLComponentTagTests.java</exclude> | |
<exclude>**/MXMLComponentNodeTests.java</exclude> | |
<exclude>**/MXMLHTTPServiceTagTests.java</exclude> | |
<exclude>**/MXMLModelTagTests.java</exclude> | |
<exclude>**/MXMLRemoteObjectNodeTests.java</exclude> | |
<exclude>**/MXMLWebServiceNodeTests.java</exclude> | |
<exclude>**/MXMLDesignLayerNodeTests.java</exclude> | |
<exclude>**/MXMLHTTPServiceNodeTests.java</exclude> | |
<exclude>**/MXMLModelNodeTests.java</exclude> | |
<exclude>**/MXMLRemoteObjectTagTests.java</exclude> | |
<exclude>**/MXMLStateNodeTests.java</exclude> | |
<exclude>**/MXMLVectorNodeTests.java</exclude> | |
<exclude>**/MXMLWebServiceTagTests.java</exclude> | |
</excludes> | |
</configuration> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-failsafe-plugin</artifactId> | |
<configuration> | |
<includes> | |
<include>as/**/*Tests.java</include> | |
</includes> | |
<excludes> | |
<exclude>f/**</exclude> | |
<exclude>mxml/tags/**</exclude> | |
<exclude>properties/**</exclude> | |
<exclude>**/MXMLComponentTagTests.java</exclude> | |
<exclude>**/MXMLComponentNodeTests.java</exclude> | |
<exclude>**/MXMLHTTPServiceTagTests.java</exclude> | |
<exclude>**/MXMLModelTagTests.java</exclude> | |
<exclude>**/MXMLRemoteObjectNodeTests.java</exclude> | |
<exclude>**/MXMLWebServiceNodeTests.java</exclude> | |
<exclude>**/MXMLDesignLayerNodeTests.java</exclude> | |
<exclude>**/MXMLHTTPServiceNodeTests.java</exclude> | |
<exclude>**/MXMLModelNodeTests.java</exclude> | |
<exclude>**/MXMLRemoteObjectTagTests.java</exclude> | |
<exclude>**/MXMLStateNodeTests.java</exclude> | |
<exclude>**/MXMLVectorNodeTests.java</exclude> | |
<exclude>**/MXMLWebServiceTagTests.java</exclude> | |
</excludes> | |
</configuration> | |
</plugin> | |
</plugins> | |
</build> | |
<profiles> | |
<!-- | |
This profile adds one test, that relies on the original FDK being | |
available as it compiles each project in the framework/projects | |
directory. It requires some environment variables being set. | |
--> | |
<profile> | |
<id>option-with-flex-sdk-tests</id> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-failsafe-plugin</artifactId> | |
<configuration> | |
<includes combine.children="append"> | |
<include>f/**/*Tests.java</include> | |
<include>mxml/**/*Tests.java</include> | |
<include>properties/**/*Tests.java</include> | |
<include>**/MXMLComponentTagTests.java</include> | |
<include>**/MXMLComponentNodeTests.java</include> | |
<include>**/MXMLHTTPServiceTagTests.java</include> | |
<include>**/MXMLModelTagTests.java</include> | |
<include>**/MXMLRemoteObjectNodeTests.java</include> | |
<include>**/MXMLWebServiceNodeTests.java</include> | |
<include>**/MXMLDesignLayerNodeTests.java</include> | |
<include>**/MXMLHTTPServiceNodeTests.java</include> | |
<include>**/MXMLModelNodeTests.java</include> | |
<include>**/MXMLRemoteObjectTagTests.java</include> | |
<include>**/MXMLStateNodeTests.java</include> | |
<include>**/MXMLVectorNodeTests.java</include> | |
<include>**/MXMLWebServiceTagTests.java</include> | |
</includes> | |
</configuration> | |
</plugin> | |
</plugins> | |
</build> | |
</profile> | |
<!-- Also run tests using the FLASHPLAYER_DEBUGGER --> | |
<profile> | |
<id>option-with-swf</id> | |
<dependencies> | |
<!-- Ensure the playerglobal is available for running tests --> | |
<dependency> | |
<groupId>com.adobe.flash.framework</groupId> | |
<artifactId>playerglobal</artifactId> | |
<version>${flash.version}</version> | |
<type>swc</type> | |
<scope>runtime</scope> | |
</dependency> | |
</dependencies> | |
</profile> | |
</profiles> | |
<dependencies> | |
<dependency> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-jburg-types</artifactId> | |
<version>${compiler-jburg-types.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-common</artifactId> | |
<version>0.9.8-SNAPSHOT</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.flex</groupId> | |
<artifactId>flex-tool-api</artifactId> | |
<version>1.0.0</version> | |
</dependency> | |
<dependency> | |
<groupId>commons-io</groupId> | |
<artifactId>commons-io</artifactId> | |
<version>2.4</version> | |
</dependency> | |
<dependency> | |
<groupId>commons-cli</groupId> | |
<artifactId>commons-cli</artifactId> | |
<version>1.2</version> | |
</dependency> | |
<dependency> | |
<groupId>org.antlr</groupId> | |
<artifactId>antlr</artifactId> | |
<version>3.3</version> | |
</dependency> | |
<dependency> | |
<groupId>com.google.guava</groupId> | |
<artifactId>guava</artifactId> | |
<version>25.1-jre</version> | |
</dependency> | |
<dependency> | |
<groupId>net.sourceforge.jburg</groupId> | |
<artifactId>jburg</artifactId> | |
<version>1.10.3</version> | |
</dependency> | |
<dependency> | |
<groupId>de.jflex</groupId> | |
<artifactId>jflex</artifactId> | |
<version>1.6.0</version> | |
<exclusions> | |
<exclusion> | |
<groupId>org.apache.ant</groupId> | |
<artifactId>ant</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.b1.pack</groupId> | |
<artifactId>lzma-sdk-4j</artifactId> | |
<version>9.22.0</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-test-utils</artifactId> | |
<version>0.9.8-SNAPSHOT</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.royale.compiler</groupId> | |
<artifactId>compiler-externc</artifactId> | |
<version>0.9.8-SNAPSHOT</version> | |
</dependency> | |
<dependency> | |
<groupId>junit</groupId> | |
<artifactId>junit</artifactId> | |
<version>4.10</version> | |
<scope>test</scope> | |
</dependency> | |
<!-- TODO: Currently only needed for the duplicate FlashplayerSecurityHandler --> | |
<dependency> | |
<groupId>org.apache.commons</groupId> | |
<artifactId>commons-lang3</artifactId> | |
<version>3.4</version> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
<properties /></project> |