<?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.4</version>
  </parent>

  <artifactId>compiler</artifactId>
  <version>0.9.4</version>

  <name>Apache Royale: Compiler: Compiler</name>
  <description>The Apache Royale Compiler</description>

  <build>
    <plugins>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
          <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>
        <version>1.4.3</version>
        <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>
        <version>2.0-beta-1</version>
        <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>
        <version>1.5.0</version>
        <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>
        <version>1.10.4</version>
        <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>
          <dependency>
            <groupId>net.sourceforge.jburg</groupId>
            <artifactId>jburg</artifactId>
            <version>1.10.3</version>
          </dependency>
          <dependency>
            <groupId>org.apache.royale.compiler</groupId>
            <artifactId>compiler-jburg-types</artifactId>
            <version>${compiler-jburg-types.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <!--
            Do all the Antlr3 code generation.
      -->
      <plugin>
        <groupId>org.antlr</groupId>
        <artifactId>antlr3-maven-plugin</artifactId>
        <version>3.5.2</version>
        <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>
        <version>${compiler-build-tools.version}</version>
        <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-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>
            </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>
        </executions>
      </plugin>

      <!-- Make the surefire execute all unit-tests -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
        <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>
        <version>2.18.1</version>
        <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>include-sdk-compile-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>
  </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.4</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>20.0</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.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-externc</artifactId>
      <version>0.9.4</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>

</project>
