<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-build-parent</artifactId>
        <version>3.8.5</version>
        <relativePath>../../build-parent/pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>io.quarkus.gradle.plugin.parent</artifactId>
    <packaging>pom</packaging>
    <name>Quarkus - Gradle Plugin - Parent</name>
    <description>Quarkus - Gradle Plugin</description>

    <properties>
        <gradle.executable>./../gradlew</gradle.executable>
        <gradle.task>build</gradle.task>
        <skip.gradle.build>false</skip.gradle.build>
    </properties>

    <modules>
        <module>gradle-model</module>
        <module>gradle-application-plugin</module>
        <module>gradle-extension-plugin</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-gradle-model</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <gradle.executable>..\gradlew.bat</gradle.executable>
            </properties>
        </profile>
        <profile>
            <id>gradleJavaHomeSet</id>
            <activation>
                <property>
                    <name>env.GRADLE_JAVA_HOME</name>
                </property>
            </activation>
            <properties>
                <gradleJavaHome>${env.GRADLE_JAVA_HOME}</gradleJavaHome>
            </properties>
        </profile>
        <profile>
            <id>gradleJavaHomeNotSet</id>
            <activation>
                <property>
                    <name>!env.GRADLE_JAVA_HOME</name>
                </property>
            </activation>
            <properties>
                <gradleJavaHome>${env.JAVA_HOME}</gradleJavaHome>
            </properties>
        </profile>
        <profile>
            <id>run-gradle</id>
            <activation>
                <file>
                    <exists>${basedir}/src</exists> <!-- basically for all submodules -->
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>gradle</id>
                                <phase>prepare-package</phase>
                                <configuration>
                                    <executable>${gradle.executable}</executable>
                                    <arguments>
                                        <argument>clean</argument>
                                        <argument>${gradle.task}</argument>
                                        <argument>-Pdescription=${project.description}</argument>
                                        <argument>-Dmaven.repo.local=${settings.localRepository}</argument>
                                        <argument>-S</argument>
                                        <argument>--stacktrace</argument>
                                        <argument>--no-daemon</argument>
                                    </arguments>
                                    <environmentVariables>
                                        <MAVEN_REPO_LOCAL>${settings.localRepository}</MAVEN_REPO_LOCAL>
                                        <GRADLE_OPTS>${env.MAVEN_OPTS}</GRADLE_OPTS>
                                        <JAVA_HOME>${gradleJavaHome}</JAVA_HOME>
                                    </environmentVariables>
                                    <skip>${skip.gradle.build}</skip>
                                </configuration>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-artifacts</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>attach-artifact</goal>
                                </goals>
                                <configuration>
                                    <artifacts>
                                        <artifact>
                                            <file>build/libs/${artifactFilePrefix}-${project.version}.jar</file>
                                            <type>jar</type>
                                        </artifact>
                                        <artifact>
                                            <file>build/libs/${artifactFilePrefix}-${project.version}-javadoc.jar</file>
                                            <type>jar</type>
                                            <classifier>javadoc</classifier>
                                        </artifact>
                                        <artifact>
                                            <file>build/libs/${artifactFilePrefix}-${project.version}-sources.jar</file>
                                            <type>jar</type>
                                            <classifier>sources</classifier>
                                        </artifact>
                                    </artifacts>
                                    <skipAttach>${skip.gradle.build}</skipAttach>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>skipTests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <gradle.task>assemble</gradle.task>
            </properties>
        </profile>
        <profile>
            <id>maven.test.skip</id>
            <activation>
                <property>
                    <name>maven.test.skip</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <gradle.task>assemble</gradle.task>
            </properties>
        </profile>
        <profile>
            <id>basic-test-suite</id>
            <activation>
                <property>
                    <name>basicTests</name>
                </property>
            </activation>
            <properties>
                <gradle.task>assemble</gradle.task>
            </properties>
        </profile>
        <profile>
            <id>quick-build</id>
            <activation>
                <property>
                    <name>quickly</name>
                </property>
            </activation>
            <properties>
                <gradle.task>assemble</gradle.task>
            </properties>
        </profile>
        <profile>
            <!-- separate "quickly" profile for CI to keep local "quickly" demands separated from CI demands -->
            <id>quick-build-ci</id>
            <activation>
                <property>
                    <name>quickly-ci</name>
                </property>
            </activation>
            <properties>
                <gradle.task>assemble</gradle.task>
            </properties>
        </profile>
    </profiles>
</project>
