<?xml version="1.0" encoding="UTF-8"?>
<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>
    <name>AtlantFX Themes</name>
    <groupId>com.dlsc.atlantafx</groupId>
    <artifactId>themes</artifactId>
    <packaging>jar</packaging>
    <version>1.5.0</version>

    <parent>
        <groupId>com.dlsc</groupId>
        <artifactId>dlsc-maven-parent</artifactId>
        <version>1.6.0</version>
    </parent>

    <organization>
        <name>DLSC Software &amp; Consulting</name>
        <url>https://www.dlsc.com</url>
    </organization>

    <developers>
        <developer>
            <name>Dirk Lemmermann</name>
            <email>dlemmermann@gmail.com</email>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
    </developers>

    <scm>
        <url>https://github.com/dlemmermann/atlantfx-themes</url>
    </scm>

    <properties>
        <java.version>21</java.version>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <sass.version>1.54.4</sass.version>
        <atlantafx.version>2.0.1</atlantafx.version>

        <scss.inputDir>${project.basedir}/src</scss.inputDir>
        <css.outputDir>${project.basedir}/src/main/resources/com/dlsc/atlantafx/themes</css.outputDir>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.github.mkpaz</groupId>
            <artifactId>atlantafx-base</artifactId>
            <version>${atlantafx.version}</version>
        </dependency>
        <dependency>
            <groupId>io.github.mkpaz</groupId>
            <artifactId>atlantafx-styles</artifactId>
            <version>${atlantafx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.10.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.2.5</version>
            </plugin>
            <!-- unpack SASS sources from atlantafx-styles jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>io.github.mkpaz</groupId>
                                    <artifactId>atlantafx-styles</artifactId>
                                    <version>${atlantafx.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- build custom theme -->
            <plugin>
                <groupId>us.hebi.sass</groupId>
                <artifactId>sass-cli-maven-plugin</artifactId>
                <version>1.0.1</version>
                <configuration>
                    <args>
                        <arg>${scss.inputDir}/browny.scss:${css.outputDir}/browny.css</arg>
                        <arg>${scss.inputDir}/navy-dark.scss:${css.outputDir}/navy-dark.css</arg>
                        <arg>${scss.inputDir}/navy-light.scss:${css.outputDir}/navy-light.css</arg>
                        <arg>${scss.inputDir}/news.scss:${css.outputDir}/news.css</arg>
                        <arg>${scss.inputDir}/blue-light.scss:${css.outputDir}/blue-light.css</arg>
                        <arg>${scss.inputDir}/blue-dark.scss:${css.outputDir}/blue-dark.css</arg>
                        <arg>${scss.inputDir}/github-soft-dark.scss:${css.outputDir}/github-soft-dark.css</arg>
                        <arg>${scss.inputDir}/github-light-default.scss:${css.outputDir}/github-light-default.css</arg>
                        <arg>${scss.inputDir}/github-dark-colorblind.scss:${css.outputDir}/github-dark-colorblind.css
                        </arg>
                        <arg>
                            ${scss.inputDir}/github-light-colorblind.scss:${css.outputDir}/github-light-colorblind.css
                        </arg>
                        <arg>${scss.inputDir}/github-dark-tritanopia.scss:${css.outputDir}/github-dark-tritanopia.css
                        </arg>
                        <arg>
                            ${scss.inputDir}/github-light-tritanopia.scss:${css.outputDir}/github-light-tritanopia.css
                        </arg>
                        <arg>${scss.inputDir}/yacht.scss:${css.outputDir}/yacht.css</arg>
                        <arg>${scss.inputDir}/autumn.scss:${css.outputDir}/autumn.css</arg>
                        <arg>${scss.inputDir}/blacky.scss:${css.outputDir}/blacky.css</arg>
                        <arg>${scss.inputDir}/army-dark.scss:${css.outputDir}/army-dark.css</arg>
                        <arg>${scss.inputDir}/army-light.scss:${css.outputDir}/army-light.css</arg>
                        <arg>${scss.inputDir}/spring-light.scss:${css.outputDir}/spring-light.css</arg>
                        <arg>${scss.inputDir}/spring-dark.scss:${css.outputDir}/spring-dark.css</arg>
                        <arg>${scss.inputDir}/summer-light.scss:${css.outputDir}/summer-light.css</arg>
                        <arg>${scss.inputDir}/summer-dark.scss:${css.outputDir}/summer-dark.css</arg>
                        <arg>${scss.inputDir}/fall-light.scss:${css.outputDir}/fall-light.css</arg>
                        <arg>${scss.inputDir}/fall-dark.scss:${css.outputDir}/fall-dark.css</arg>
                        <arg>${scss.inputDir}/winter-light.scss:${css.outputDir}/winter-light.css</arg>
                        <arg>${scss.inputDir}/winter-dark.scss:${css.outputDir}/winter-dark.css</arg>
                        <arg>--no-source-map</arg>
                    </args>
                </configuration>
                <executions>
                    <execution>
                        <id>run-sass</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>3.5.1</version>
                <executions>
                    <execution>
                        <id>compile-to-bss</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <configuration>
                            <mainClass>atlantafx.base.theme.ThemeCompiler</mainClass>
                            <arguments>
                                <argument>${css.outputDir}</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>watch</id>
            <properties>
                <sass.watch>true</sass.watch>
            </properties>
        </profile>
    </profiles>

</project>
