package ru.mipt.npm.gradle import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.tasks.testing.Test import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile open class KScienceJVMPlugin : Plugin<Project> { override fun apply(project: Project): Unit = project.run { plugins.apply("org.jetbrains.kotlin.jvm") registerKScienceExtension() repositories.applyRepos() extensions.findByType<JavaPluginExtension>()?.apply { targetCompatibility = KScienceVersions.JVM_TARGET withSourcesJar() //withJavadocJar() } tasks.withType<KotlinCompile> { kotlinOptions { // useIR = true jvmTarget = KScienceVersions.JVM_TARGET.toString() } } configure<KotlinJvmProjectExtension> { explicitApiWarning() val sourceSet = sourceSets["main"].apply { languageSettings.applySettings() } sourceSets["test"].apply { languageSettings.applySettings() dependencies { implementation(kotlin("test-junit5")) implementation("org.junit.jupiter:junit-jupiter:5.6.1") } } } tasks.apply { withType<Test>() { useJUnitPlatform() } // // val processResources by getting(Copy::class) // processResources.copyJVMResources(configurations["runtimeClasspath"]) } } }