import static org.gradle.api.JavaVersion.VERSION_1_8

/*
 * Gradle script plugin: Configure a module such that the Java and Kotlin
 * compilers use the deterministic rt.jar instead of the full JDK rt.jar.
 */
apply plugin: 'kotlin'

evaluationDependsOn(':jdk8u-deterministic')

def jdk8uDeterministic = project(':jdk8u-deterministic')

ext {
    jdkTask = jdk8uDeterministic.tasks.named('assemble')
    deterministic_jdk_home = jdk8uDeterministic.jdk_home
    deterministic_rt_jar = jdk8uDeterministic.rt_jar
}

tasks.withType(AbstractCompile).configureEach {
    dependsOn jdkTask

    // This is a bit ugly, but Gradle isn't recognising the KotlinCompile task
    // as it does the built-in JavaCompile task.
    if (it.class.name.startsWith('org.jetbrains.kotlin.gradle.tasks.KotlinCompile')) {
        kotlinOptions {
            jdkHome = deterministic_jdk_home
            jvmTarget = VERSION_1_8
        }
    }
}

tasks.withType(JavaCompile).configureEach {
    options.compilerArgs << '-bootclasspath' << deterministic_rt_jar
    sourceCompatibility = VERSION_1_8
    targetCompatibility = VERSION_1_8
}