import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

val zircon_version: String by project
val amethyst_version: String by project
val slf4j_version: String by project
val junit_version: String by project
val mockito_version: String by project
val assertj_version: String by project
val game_name: String by project
val version: String by project

plugins {
    kotlin("jvm") version "1.9.10"
    `kotlin-dsl`
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

repositories {
    mavenLocal()
    mavenCentral()
    jcenter()
}

java {
    sourceCompatibility = JavaVersion.VERSION_20
    targetCompatibility = JavaVersion.VERSION_20
}

dependencies {
    implementation("org.slf4j:slf4j-api:$slf4j_version")
    implementation("org.slf4j:slf4j-simple:$slf4j_version")

    implementation("org.hexworks.zircon:zircon.core-jvm:$zircon_version")
    implementation("org.hexworks.zircon:zircon.jvm.swing:$zircon_version")

    implementation("org.hexworks.amethyst:amethyst.core-jvm:$amethyst_version")

    implementation(kotlin("stdlib-jdk8"))

    implementation("org.freedesktop:xdg-java:0.0.1-SNAPSHOT@jar")
    implementation("org.assertj:assertj-core:3.6.2")

    implementation("com.akuleshov7:ktoml-core:0.5.0")
    implementation("com.akuleshov7:ktoml-file:0.5.0")
}

tasks {
    named<ShadowJar>("shadowJar") {
        mergeServiceFiles()
        manifest {
            attributes(mapOf("Main-Class" to "group.ouroboros.potrogue.MainKt"))
        }
    }
}

tasks {
    build {
        dependsOn(shadowJar)
    }
}

val jar by tasks.getting(Jar::class) {
    manifest {
        attributes["Main-Class"] = "group.ouroboros.potrogue.MainKt"
    }
}