blob: 337cc5955d097e3eb9fe7f822f152c52777aa7c2 [file] [log] [blame]
<?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.9-SNAPSHOT</version>
</parent>
<artifactId>compiler</artifactId>
<version>0.9.9-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.9-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.9-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.royale.compiler</groupId>
<artifactId>compiler-externc</artifactId>
<version>0.9.9-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>