<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>zone.dragon</groupId>
    <artifactId>base-pom</artifactId>
    <version>4.1.3</version>
  </parent>
  <artifactId>base-kotlin-pom</artifactId>
  <packaging>pom</packaging>
  <name>DragonZone :: Base POM for Kotlin</name>
  <description>POM file for managing DragonZone kotlin projects</description>
  <properties>
    <kotlinx.coroutines.version>1.5.2</kotlinx.coroutines.version>
    <kotlin.version>1.5.31</kotlin.version>
    <mockito.kotlin.version>2.2.0</mockito.kotlin.version>
    <ktor.version>1.6.3</ktor.version>
    <kotlin-logging.version>2.0.4</kotlin-logging.version>
    <dokka.plugin.version>1.4.10.2</dokka.plugin.version>
    <kotlinx.serialization.version>1.3.0-RC</kotlinx.serialization.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-bom</artifactId>
        <version>${kotlin.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-coroutines-bom</artifactId>
        <version>${kotlinx.coroutines.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.ktor</groupId>
        <artifactId>ktor-bom</artifactId>
        <version>${ktor.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-android-extensions-runtime</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-android-extensions</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-annotation-processing</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-annotations-jvm</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-serialization</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>io.github.microutils</groupId>
        <artifactId>kotlin-logging</artifactId>
        <version>${kotlin-logging.version}</version>
      </dependency>
      <dependency>
        <groupId>com.nhaarman.mockitokotlin2</groupId>
        <artifactId>mockito-kotlin</artifactId>
        <version>${mockito.kotlin.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-cbor</artifactId>
        <version>${kotlinx.serialization.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-json</artifactId>
        <version>${kotlinx.serialization.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-hocon</artifactId>
        <version>${kotlinx.serialization.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-properties</artifactId>
        <version>${kotlinx.serialization.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-protobuf</artifactId>
        <version>${kotlinx.serialization.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib-js</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src/main/kotlin</sourceDirectory>
    <testSourceDirectory>src/test/kotlin</testSourceDirectory>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.jetbrains.kotlin</groupId>
          <artifactId>kotlin-maven-plugin</artifactId>
          <version>${kotlin.version}</version>
          <executions>
            <execution>
              <id>compile-java</id>
              <phase>compile</phase>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
            <execution>
              <id>compile-js</id>
              <phase>compile</phase>
              <goals>
                <goal>js</goal>
              </goals>
              <configuration>
                <sourceDirs>${project.build.sourceDirectory}</sourceDirs>
                <outputFile>${project.build.outputDirectory}/${project.artifactId}.js</outputFile>
                <sourceMap>true</sourceMap>
              </configuration>
            </execution>
            <execution>
              <id>test-compile</id>
              <phase>test-compile</phase>
              <goals>
                <goal>test-compile</goal>
              </goals>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.jetbrains.kotlin</groupId>
              <artifactId>kotlin-maven-serialization</artifactId>
              <version>${kotlin.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <compilerPlugins>
              <plugin>kotlinx-serialization</plugin>
            </compilerPlugins>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jetbrains.dokka</groupId>
          <artifactId>dokka-maven-plugin</artifactId>
          <version>${dokka.plugin.version}</version>
          <executions>
            <execution>
              <phase>pre-site</phase>
              <goals>
                <goal>dokka</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
