<?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>projects</artifactId>
    <version>0.9.8-SNAPSHOT</version>
  </parent>

  <artifactId>SparkRoyale</artifactId>
  <version>0.9.8-SNAPSHOT</version>
  <packaging>swc</packaging>

  <name>Apache Royale: Framework: Libs: SparkRoyale</name>

  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <version>${royale.compiler.version}</version>
        <extensions>true</extensions>
        <configuration>
          <namespaces>
            <namespace>
              <uri>library://ns.apache.org/royale/spark</uri>
              <manifest>${project.basedir}/src/main/resources/spark-royale-manifest.xml</manifest>
            </namespace>
          </namespaces>
          <includeClasses>
            <includeClass>SparkRoyaleClasses</includeClass>
          </includeClasses>
          <includeFiles>
              <include-file>
                  <name>defaults.css</name>
                  <path>../src/main/resources/defaults.css</path>
              </include-file>
          </includeFiles>
          <skipExtern>true</skipExtern>
          <skipAS>${royale.skipAS}</skipAS>
          <defines>
              <define>
                  <name>GOOG::DEBUG</name>
                  <value>true</value>
              </define>
          </defines>
          <allowSubclassOverrides>true</allowSubclassOverrides>
          <additionalCompilerOptions>${project.compiler.options};-js-compiler-define=COMPILE::JS,true;-js-compiler-define=COMPILE::SWF,false;-js-compiler-define=GOOG::DEBUG,goog.DEBUG</additionalCompilerOptions>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Core</artifactId>
      <version>0.9.8-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Basic</artifactId>
        <version>0.9.8-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>MXRoyale</artifactId>
        <version>0.9.8-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Text</artifactId>
        <version>0.9.8-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>TLF</artifactId>
        <version>0.9.8-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>option-with-swf</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Core</artifactId>
          <version>0.9.8-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Basic</artifactId>
          <version>0.9.8-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>MXRoyale</artifactId>
          <version>0.9.8-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Text</artifactId>
          <version>0.9.8-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>TLF</artifactId>
          <version>0.9.8-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

</project>
