<?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>frameworks</artifactId>
    <version>0.9.9</version>
  </parent>

  <artifactId>themes</artifactId>
  <version>0.9.9</version>
  <packaging>pom</packaging>

  <name>Apache Royale: Framework: Themes</name>

  <properties>
    <project.compiler.options>${repo.compiler.options};-js-default-initializers=false;-source-map=${source.map};-js-complex-implicit-coercions=false;-js-vector-index-checks=false;-js-resolve-uncertain=false</project.compiler.options>
  <project.build.outputTimestamp>2022-03-17T08:05:21Z</project.build.outputTimestamp></properties>

  <modules>
    <module>Basic</module>
    <module>MDL</module>
    <module>MXRoyale</module>

    <module>JewelTheme</module>

    <!-- Light & NoFlat-->
    <module>Jewel-Light-NoFlat-Primary-Amethyst-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Blue-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Emerald-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Green-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Orange-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Red-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Sapphire-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Sunflower-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Topaz-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Turquoise-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Violet-Theme</module>
    <module>Jewel-Light-NoFlat-Primary-Yellow-Theme</module>

    <module>Jewel-Light-NoFlat-Secondary-Amethyst-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Blue-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Emerald-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Green-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Orange-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Red-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Sapphire-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Sunflower-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Topaz-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Turquoise-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Violet-Theme</module>
    <module>Jewel-Light-NoFlat-Secondary-Yellow-Theme</module>

    <module>Jewel-Light-NoFlat-Emphasized-Amethyst-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Blue-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Emerald-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Green-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Orange-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Red-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Sapphire-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Sunflower-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Topaz-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Turquoise-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Violet-Theme</module>
    <module>Jewel-Light-NoFlat-Emphasized-Yellow-Theme</module>
    
    <!-- Light & Flat-->
    <module>Jewel-Light-Flat-Primary-Amethyst-Theme</module>
    <module>Jewel-Light-Flat-Primary-Blue-Theme</module>
    <module>Jewel-Light-Flat-Primary-Emerald-Theme</module>
    <module>Jewel-Light-Flat-Primary-Green-Theme</module>
    <module>Jewel-Light-Flat-Primary-Orange-Theme</module>
    <module>Jewel-Light-Flat-Primary-Red-Theme</module>
    <module>Jewel-Light-Flat-Primary-Sapphire-Theme</module>
    <module>Jewel-Light-Flat-Primary-Sunflower-Theme</module>
    <module>Jewel-Light-Flat-Primary-Topaz-Theme</module>
    <module>Jewel-Light-Flat-Primary-Turquoise-Theme</module>
    <module>Jewel-Light-Flat-Primary-Violet-Theme</module>
    <module>Jewel-Light-Flat-Primary-Yellow-Theme</module>

    <module>Jewel-Light-Flat-Secondary-Amethyst-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Blue-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Emerald-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Green-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Orange-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Red-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Sapphire-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Sunflower-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Topaz-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Turquoise-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Violet-Theme</module>
    <module>Jewel-Light-Flat-Secondary-Yellow-Theme</module>

    <module>Jewel-Light-Flat-Emphasized-Amethyst-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Blue-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Emerald-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Green-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Orange-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Red-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Sapphire-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Sunflower-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Topaz-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Turquoise-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Violet-Theme</module>
    <module>Jewel-Light-Flat-Emphasized-Yellow-Theme</module>

    <!-- Dark & NoFlat-->
    <module>Jewel-Dark-NoFlat-Primary-Amethyst-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Blue-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Emerald-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Green-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Orange-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Red-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Sapphire-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Sunflower-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Topaz-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Turquoise-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Violet-Theme</module>
    <module>Jewel-Dark-NoFlat-Primary-Yellow-Theme</module>

    <module>Jewel-Dark-NoFlat-Secondary-Amethyst-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Blue-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Emerald-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Green-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Orange-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Red-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Sapphire-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Sunflower-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Topaz-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Turquoise-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Violet-Theme</module>
    <module>Jewel-Dark-NoFlat-Secondary-Yellow-Theme</module>

    <module>Jewel-Dark-NoFlat-Emphasized-Amethyst-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Blue-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Emerald-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Green-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Orange-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Red-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Sapphire-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Sunflower-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Topaz-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Turquoise-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Violet-Theme</module>
    <module>Jewel-Dark-NoFlat-Emphasized-Yellow-Theme</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <configuration>
          <!-- We don't want dependencies to be linked into the resulting libraries -->
          <forceSwcExternalLibraryPath>true</forceSwcExternalLibraryPath>
          <additionalCompilerOptions>${project.compiler.options}</additionalCompilerOptions>
          <targets>${royale.targets}</targets>
          <allowSubclassOverrides>true</allowSubclassOverrides>
          <skipAS>${royale.skipAS}</skipAS>
          <skipExtern>true</skipExtern>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.typedefs</groupId>
      <artifactId>royale-typedefs-gcl</artifactId>
      <version>${royale.typedefs.version}</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
    </dependency>
    <!--
      By declaring this dependency here, we force the royale-externs-js to be
      added to the external library path of all modules. Without this it would
      have gone to the library path.
    -->
    <dependency>
      <groupId>org.apache.royale.typedefs</groupId>
      <artifactId>royale-typedefs-js</artifactId>
      <version>${royale.typedefs.version}</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>option-with-sass-compile</id>
      <build>
        <plugins>
          <plugin>
            <groupId>nl.geodienstencentrum.maven</groupId>
            <artifactId>sass-maven-plugin</artifactId>
            <version>3.7.2</version>
            <configuration>
              <resources>
                <!-- Depends on JewelTheme SASS framework files-->
                <resource>
                  <source>
                    <directory>${basedir}/src/main/sass</directory>
                    <includes>
                      <include>defaults.sass</include>
                    </includes>
                  </source>
                  <destination>${basedir}/src/main/resources</destination>
                </resource>
              </resources>
            </configuration>
            <executions>
              <execution>
                <id>generate-css-using-sass</id>
                <goals>
                  <goal>update-stylesheets</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!--
      This is a self-activating profile that causes the sass plugin
      to not be executed if there is no src/main/sass directory.
    -->
    <profile>
      <id>_skip-sass-compilation</id>
      <activation>
        <file>
          <missing>src/main/sass</missing>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>nl.geodienstencentrum.maven</groupId>
            <artifactId>sass-maven-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
