<?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</version>
  </parent>

  <artifactId>compiler-jx</artifactId>
  <version>0.9.7</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</version>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler-externc</artifactId>
      <version>0.9.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler</artifactId>
      <version>0.9.7</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</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</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    
  </dependencies>

<properties><project.build.outputTimestamp>2020-04-26T10:30:55Z</project.build.outputTimestamp></properties></project>
