<?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.7-SNAPSHOT</version>
  </parent>

  <artifactId>MaterialDesignLite</artifactId>
  <version>0.9.7-SNAPSHOT</version>
  <packaging>swc</packaging>

  <name>Apache Royale: Framework: Libs: Material Design Lite</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/mdl</uri>
              <manifest>${project.basedir}/src/main/resources/mdl-manifest.xml</manifest>
            </namespace>
            <namespace>
              <type>as</type>
              <uri>library://ns.apache.org/royale/mdl</uri>
              <manifest>${project.basedir}/src/main/resources/mdl-as-manifest.xml</manifest>
            </namespace>
          </namespaces>
          <includeClasses>
            <includeClass>MDLClasses</includeClass>
          </includeClasses>
          <includeFiles>
            <include-file>
              <name>defaults.css</name>
              <path>../src/main/resources/defaults.css</path>
            </include-file>
          </includeFiles>
          <allowSubclassOverrides>true</allowSubclassOverrides>
          <includeLookupOnly>true</includeLookupOnly>
          <skipExtern>true</skipExtern>
          <skipAS>${royale.skipAS}</skipAS>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Core</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Binding</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Graphics</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Collections</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Basic</artifactId>
      <version>0.9.7-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>HTML</artifactId>
      <version>0.9.7-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.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Binding</artifactId>
          <version>0.9.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Graphics</artifactId>
          <version>0.9.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Collections</artifactId>
          <version>0.9.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Basic</artifactId>
          <version>0.9.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>HTML</artifactId>
          <version>0.9.7-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

</project>
