
plugins {
    id 'java'
    id 'application'
    id "org.jetbrains.kotlin.jvm"
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(javaVersion)
    }
}

compileKotlin {
    kotlinOptions {
        jvmTarget = javaVersion
    }
}

compileTestKotlin {
    kotlinOptions {
        jvmTarget = javaVersion
    }
}

dependencies {
    implementation project(':codeCore')
    implementation project(':compiler')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    // implementation "org.jetbrains.kotlin:kotlin-reflect"
    implementation 'org.jetbrains.kotlinx:kotlinx-cli:0.3.4'
    implementation "org.takes:takes:1.19"
    implementation "javax.json:javax.json-api:1.1.4"
    implementation "org.glassfish:javax.json:1.1.4"
    implementation "org.slf4j:slf4j-simple:1.7.36"
}

configurations.all {
    exclude group: 'com.ibm.icu', module: 'icu4j'
    exclude group: "org.antlr", module: "antlr4"
}

sourceSets {
    main {
        java {
            srcDirs = ["${project.projectDir}/src"]
        }
        resources {
            srcDirs = ["${project.projectDir}/res"]
        }
    }
    test {
        java {
            srcDirs = ["${project.projectDir}/test"]
        }
    }
}

startScripts.enabled = true

application {
    mainClass = 'prog8.http.TestHttpKt'
    applicationName = 'prog8compilerservicehttp'
}

shadowJar {
    archiveBaseName = 'prog8compilerservicehttp'
    archiveVersion = '1.0'
    // minimize()
}


test {
    // Enable JUnit 5 (Gradle 4.6+).
    useJUnitPlatform()

    // Always run tests, even when nothing changed.
    dependsOn 'cleanTest'

    // Show test results.
    testLogging {
        events "skipped", "failed"
    }
}

build.finalizedBy installDist, installShadowDist
