<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.myfaces.tobago</groupId>
    <artifactId>tobago</artifactId>
    <version>5.0.0-alpha-1</version>
  </parent>
  <packaging>pom</packaging>
  <name>Tobago Themes</name>
  <artifactId>tobago-theme</artifactId>

  <properties>
    <theme.name>undefined-theme-name</theme.name>
    <frontend.skip>false</frontend.skip>
  </properties>

  <modules>
    <module>tobago-theme-standard</module>
    <module>tobago-theme-scarborough</module>
    <module>tobago-theme-speyside</module>
    <module>tobago-theme-roxborough</module>
    <module>tobago-theme-charlotteville</module>
  </modules>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>META-INF/tobago-config.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
<!--  todo: can be removed, after find a npm way for the roxborough fonts       -->
        <directory>src/main/resources/META-INF/resources/tobago/${theme.name}</directory>
        <excludes>
          <exclude>**/_version/**</exclude>
        </excludes>
        <filtering>false</filtering>
        <targetPath>META-INF/resources/tobago/${theme.name}</targetPath>
      </resource>
      <resource>
        <!--  todo: can be removed, after find a npm way for the roxborough fonts       -->
        <directory>src/main/resources/META-INF/resources/tobago/${theme.name}/_version</directory>
        <filtering>false</filtering>
        <targetPath>META-INF/resources/tobago/${theme.name}/${project.version}</targetPath>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <id>copy the result to target</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>
                ${project.build.outputDirectory}/META-INF/resources/tobago/${theme.name}/${project.version}
              </outputDirectory>
              <resources>
                <resource>
                  <directory>src/main</directory>
                  <includes>
                    <include>css/**</include>
                    <include>fonts/**</include>
                    <include>js/tobago.js</include>
                    <include>js/tobago.js.map</include>
                    <include>js/tobago*.js</include>
                    <include>js/tobago*.js.map</include>
                  </includes>
                </resource>
                <resource>
                  <directory>src/main</directory>
                  <includes>
                    <include>js/*</include>
                  </includes>
                </resource>
                <resource>
                  <!-- XXX cleanup: better via rollup? -->
                  <directory>../node_modules/bootstrap/dist</directory>
                  <includes>
                    <include>js/bootstrap.*</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
