<?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.10.0-SNAPSHOT</version>
  </parent>

  <artifactId>debugger</artifactId>
  <version>0.10.0-SNAPSHOT</version>

  <name>Apache Royale: Compiler: Debugger</name>

  <build>
    <plugins>
      <!--
Do all the JBurg code generation.
-->
      <plugin>
        <groupId>net.sourceforge.jburg</groupId>
        <artifactId>jburg-maven-plugin</artifactId>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>generate-debugger</id>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <includes>
                <include>AS3DebuggerBURM.jbg</include>
                <!--include>AS3DebuggerCompoundAssignmentRules.jbg</include>
                <include>AS3DebuggerRules.jbg</include-->
              </includes>
              <sourceDirectory>src/main/jburg/flash/tools/debugger/expression</sourceDirectory>
              <outputDirectory>target/generated-sources/jburg/flash/tools/debugger/expression</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>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler</artifactId>
      <version>0.10.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>swfutils</artifactId>
      <version>0.10.0-SNAPSHOT</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.0.28</version>
    </dependency>
    <dependency>
      <groupId>org.codeartisans</groupId>
      <artifactId>org.json</artifactId>
      <version>20131017</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>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

<properties /></project>
