<?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.7-SNAPSHOT</version>
  </parent>

  <artifactId>compiler-jx</artifactId>
  <version>0.9.7-SNAPSHOT</version>

  <name>Apache Royale: Compiler: Compiler-JX</name>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestEntries>
              <Sealed>false</Sealed>
              <Class-Path>commons-io.jar guava.jar ../../lib/external/antlr.jar ../../compiler/lib/external/antlr.jar ../../lib/external/commons-lang-2.6.jar ../../compiler/lib/external/commons-lang-2.6.jar google/closure-compiler/compiler.jar ../../compiler/lib/compiler.jar ../../lib/compiler.jar  ../../compiler/lib/compiler-common.jar ../../lib/compiler-common.jar</Class-Path>
              <!-- google-closure-library-0.0-20170809-b9c14c6b.jar google-closure-library-third-party-0.0-20170809-b9c14c6b.jar external/closure-compiler-v20181210.jar -->
            </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>
      <!-- Make the surefire execute all unit-tests -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>org/**/Test*.java</include>
          </includes>
          <excludes>
            <exclude>**/TestRoyaleFile.java</exclude>
            <exclude>**/TestRoyaleMXML*.java</exclude>
            <exclude>**/TestSourceMapMXML*.java</exclude>
            <exclude>**/TestMXML*.java</exclude>
            <exclude>**/TestRoyaleClass.java</exclude>
            <exclude>**/TestTypedefsCompile.java</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/TestMXML*.java</include>
          </includes>
          <excludes>
            <exclude>**/TestTypedefsCompile.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <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.COMPJSC</arguments>
                      <argument>-targets=SWF</argument>
                      <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.COMPJSC</arguments>
                      <argument>-load-config+=target/compile-js-config.xml</argument>
                      <argument>-output=target/custom.swc</argument>
                  </arguments>
              </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-common</artifactId>
      <version>0.9.7-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-externc</artifactId>
      <version>0.9.7-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler</artifactId>
      <version>0.9.7-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
      <version>1.11</version>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>

    <dependency>
      <groupId>args4j</groupId>
      <artifactId>args4j</artifactId>
      <version>2.33</version>
    </dependency>
    <dependency>
      <groupId>com.google.javascript</groupId>
      <artifactId>closure-compiler</artifactId>
      <version>v20181210</version>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>google-closure-library</artifactId>
      <version>0.0-20170809-b9c14c6b</version>
    </dependency>

    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-test-utils</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-externc</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    
  </dependencies>

</project>
