<?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.9-SNAPSHOT</version>
  </parent>

  <artifactId>MXRoyale</artifactId>
  <version>0.9.9-SNAPSHOT</version>
  <packaging>swc</packaging>

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

  <properties>
      <mxroyale.base>${project.basedir}/../MXRoyaleBase</mxroyale.base>
  </properties>

  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <version>${project.royale.compiler.version}</version>
        <extensions>true</extensions>
        <configuration combine.children="append">
          <namespaces>
            <namespace>
              <uri>library://ns.apache.org/royale/mx</uri>
              <manifest>${project.basedir}/src/main/resources/mx-royale-manifest.xml</manifest>
            </namespace>
            <namespace>
              <uri>library://ns.apache.org/royale/mx</uri>
              <manifest>${mxroyale.base}/src/main/resources/mx-royale-manifest.xml</manifest>
            </namespace>
          </namespaces>
          <includeClasses>
            <includeClass>MXRoyaleClasses</includeClass>
          </includeClasses>
          <includeFiles>
              <include-file>
                  <name>defaults.css</name>
                  <path>../src/main/resources/defaults.css</path>
              </include-file>
              <include-file>
                  <name>assets/icon_align_center.png</name>
                  <path>../src/main/resources/assets/icon_align_center.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_align_justify.png</name>
                  <path>../src/main/resources/assets/icon_align_justify.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_align_left.png</name>
                  <path>../src/main/resources/assets/icon_align_left.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_align_right.png</name>
                  <path>../src/main/resources/assets/icon_align_right.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_bullet.png</name>
                  <path>../src/main/resources/assets/icon_bullet.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_style_bold.png</name>
                  <path>../src/main/resources/assets/icon_style_bold.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_style_italic.png</name>
                  <path>../src/main/resources/assets/icon_style_italic.png</path>
              </include-file>
              <include-file>
                  <name>assets/icon_style_underline.png</name>
                  <path>../src/main/resources/assets/icon_style_underline.png</path>
              </include-file>
	      <include-file>
                  <name>assets/icon_required_indicator.png</name>
                  <path>../src/main/resources/assets/icon_required_indicator.png</path>
              </include-file>
	      <include-file>
                  <name>assets/icon_error_indicator.png</name>
                  <path>../src/main/resources/assets/icon_error_indicator.png</path>
              </include-file>
          </includeFiles>
          <skipExtern>true</skipExtern>
          <skipAS>${royale.skipAS}</skipAS>
          <defines>
              <define>
                  <name>GOOG::DEBUG</name>
                  <value>true</value>
              </define>
              <define>
                  <name>ROYALE::DISPLAYOBJECT</name>
                  <value>IUIComponent</value>
              </define>
              <define>
                  <name>ROYALE::PROXYVISIBILITY</name>
                  <value>flash_proxy</value>
              </define>
          </defines>
          <allowSubclassOverrides>true</allowSubclassOverrides>
          <includeLookupOnly>true</includeLookupOnly>
          <additionalCompilerOptions>
              ${project.compiler.options};
              -js-compiler-define=COMPILE::JS,true;
              -js-compiler-define=COMPILE::SWF,false;
              -js-compiler-define=GOOG::DEBUG,goog.DEBUG;
              -js-compiler-define=ROYALE::DISPLAYOBJECT,IUIComponent;
              -js-compiler-define=ROYALE::PROXYVISIBILITY,public;
              -namespace+=http://ns.adobe.com/mxml/2009,${project.basedir}/../../mxml-2009-manifest.xml;
              -compiler.js-namespaces.namespace+=http://ns.adobe.com/mxml/2009,${project.basedir}/../../mxml-2009-manifest.xml;
              -compiler.js-namespaces.namespace+=library://ns.apache.org/royale/mx,${project.basedir}/src/main/resources/mx-royale-manifest.xml;
              -compiler.js-namespaces.namespace+=library://ns.apache.org/royale/mx,${mxroyale.base}/src/main/resources/mx-royale-manifest.xml;
              -compiler.warn-instance-of-changes=false;
              -compiler.warn-this-within-closure=false;
              -source-path+=${mxroyale.base}/src/main/royale;
          </additionalCompilerOptions>
        </configuration>
      </plugin>

    </plugins>
  </build>
  
  <dependencies>
    <!--
    Note: this is not needed, because we are linking in the source code directly
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>MXRoyaleBase</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>-->
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Binding</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.royale.framework</groupId>
      <artifactId>Core</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>swc</type>
      <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Basic</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Graphics</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Collections</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>DragDrop</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Express</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Effects</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Formatters</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Charts</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Network</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>Reflection</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
    <dependency>
        <groupId>org.apache.royale.framework</groupId>
        <artifactId>XML</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <type>swc</type>
        <classifier>js</classifier>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>option-with-swf</id>
      <dependencies>
        <!--
        Note: this is not needed, because we are linking in the source code directly
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>MXRoyaleBase</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>-->
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Binding</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Core</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Basic</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Graphics</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Collections</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>DragDrop</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Express</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Effects</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Formatters</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Charts</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Network</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>Reflection</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
        <dependency>
          <groupId>org.apache.royale.framework</groupId>
          <artifactId>XML</artifactId>
          <version>0.9.9-SNAPSHOT</version>
          <type>swc</type>
          <classifier>swf</classifier>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

</project>
