<?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.framework</groupId>
    <artifactId>royale-framework-parent</artifactId>
    <version>0.9.9</version>
    <relativePath>../../../pom.xml</relativePath>
  </parent>

  <groupId>org.apache.royale.framework.distribution</groupId>
  <artifactId>compiler-asc</artifactId>
  <version>0.9.9</version>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>false</addClasspath>
              <mainClass>org.apache.royale.compiler.clients.ASC</mainClass>
            </manifest>
            <manifestEntries>
              <!-- These paths are all defined the way the layout will be in the distribution -->
              <Class-Path>compiler-common.jar compiler.jar</Class-Path>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.compiler</groupId>
      <artifactId>compiler</artifactId>
      <version>${project.royale.compiler.version}</version>
    </dependency>
  </dependencies>

<properties><project.build.outputTimestamp>2022-03-17T08:05:21Z</project.build.outputTimestamp></properties></project>
