/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/8.0.2/userguide/building_java_projects.html
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'

    implementation 'org.json:json:20250107'

    implementation "io.github.spair:imgui-java-app:1.88.0"

    implementation "org.lwjgl:lwjgl-stb:3.3.4"

    implementation "org.lwjgl:lwjgl-stb::natives-linux"
    implementation "org.lwjgl:lwjgl-stb::natives-windows"
    implementation "org.lwjgl:lwjgl-stb::natives-macos"
}

application {
    // Define the main class for the application.
    mainClass = 'gui.Main'
}

// Add libraries into the final jar
jar {
    archiveBaseName = rootProject.getName()
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes "Main-Class": application.mainClass
    }
    from {
        configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    } 
}

test {
    useJUnitPlatform()
}

run {
    enableAssertions = true
}