Migrate repo to use JVM toolchains Gradle feature.

^KT-46972 Fixed
This commit is contained in:
Yahor Berdnikau
2021-06-29 15:42:02 +02:00
committed by Space
parent 08d831934a
commit 7789054547
67 changed files with 424 additions and 723 deletions
@@ -54,5 +54,3 @@ pluginBundle {
}
configurePluginMarkers(project)
test.executable = "${JDK_18}/bin/java"
@@ -2,7 +2,9 @@ description = 'Kotlin annotations for JVM'
apply plugin: 'kotlin'
configureJvm6Project(project)
JvmToolchain.configureJvmToolchain(project, JdkMajorVersion.JDK_1_6)
LibrariesCommon.disableDeprecatedJvmTargetWarning(project)
configurePublishing(project)
sourceSets {
@@ -20,11 +22,6 @@ dependencies {
configureSourcesJar()
configureJavadocJar()
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
kotlinOptions.jdkHome = JDK_16
kotlinOptions.jvmTarget = 1.6
}
compileKotlin {
kotlinOptions.freeCompilerArgs = [
"-Xallow-kotlin-package",
@@ -1,5 +1,4 @@
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.pill.PillExtension
plugins {
@@ -198,11 +197,6 @@ tasks.named<Task>("check") {
}
}
tasks.withType<KotlinCompile> {
kotlinOptions.jdkHome = rootProject.extra["JDK_18"] as String
kotlinOptions.jvmTarget = "1.8"
}
tasks.withType<Test> {
val noTestProperty = project.providers.gradleProperty("noTest")
onlyIf { !noTestProperty.isPresent }
@@ -210,17 +204,22 @@ tasks.withType<Test> {
dependsOn(":kotlin-gradle-plugin:validatePlugins")
dependsOnKotlinGradlePluginInstall()
executable = "${rootProject.extra["JDK_18"]!!}/bin/java"
systemProperty("kotlinVersion", rootProject.extra["kotlinVersion"] as String)
systemProperty("runnerGradleVersion", gradle.gradleVersion)
systemProperty("jdk9Home", rootProject.extra["JDK_9"] as String)
systemProperty("jdk10Home", rootProject.extra["JDK_10"] as String)
systemProperty("jdk11Home", rootProject.extra["JDK_11"] as String)
val jdk9Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_9).map { it.metadata.installationPath.asFile.absolutePath }
val jdk10Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_10).map { it.metadata.installationPath.asFile.absolutePath }
val jdk11Provider = project.getToolchainLauncherFor(JdkMajorVersion.JDK_11).map { it.metadata.installationPath.asFile.absolutePath }
val mavenLocalRepo = project.providers.systemProperty("maven.repo.local").forUseAtConfigurationTime().orNull
if (mavenLocalRepo != null) {
systemProperty("maven.repo.local", mavenLocalRepo)
// Query required JDKs paths only on execution phase to avoid triggering auto-download on project configuration phase
doFirst {
systemProperty("jdk9Home", jdk9Provider.get())
systemProperty("jdk10Home", jdk10Provider.get())
systemProperty("jdk11Home", jdk11Provider.get())
if (mavenLocalRepo != null) {
systemProperty("maven.repo.local", mavenLocalRepo)
}
}
useAndroidSdk()
@@ -595,8 +595,8 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
) = assertOutputContains("[KOTLIN] Kotlin compilation 'jdkHome' argument: $javaexecPath")
private fun getUserJdk(): JavaInfo = Jvm.forHome(File(System.getenv("JAVA_HOME")))
private fun getJdk9(): JavaInfo = Jvm.forHome(File(System.getenv("JDK_9")))
private fun getJdk11(): JavaInfo = Jvm.forHome(File(System.getenv("JDK_11")))
private fun getJdk9(): JavaInfo = Jvm.forHome(File(System.getProperty("jdk9Home")))
private fun getJdk11(): JavaInfo = Jvm.forHome(File(System.getProperty("jdk11Home")))
// replace required for windows paths so Groovy will not complain about unexpected char '\'
private fun getJdk9Path(): String = getJdk9().javaHome.absolutePath.replace("\\", "\\\\")
private fun getJdk11Path(): String = getJdk11().javaHome.absolutePath.replace("\\", "\\\\")
@@ -145,7 +145,6 @@ tasks {
}
projectTest {
executable = "${rootProject.extra["JDK_18"]!!}/bin/java"
dependsOn(tasks.named("validatePlugins"))
workingDir = rootDir
@@ -1,5 +1,5 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import proguard.gradle.ProGuardTask
import org.gradle.internal.jvm.Jvm
description = "Kotlin \"main\" script definition"
@@ -8,7 +8,6 @@ plugins {
id("jps-compatible")
}
val JDK_18: String by rootProject.extra
val jarBaseName = property("archivesBaseName") as String
val localPackagesToRelocate =
@@ -88,13 +87,28 @@ val proguard by task<CacheableProguardTask> {
outjars(fileFrom(buildDir, "libs", "$jarBaseName-$version-after-proguard.jar"))
jdkHome = File(JDK_18)
javaLauncher.set(project.getToolchainLauncherFor(JdkMajorVersion.JDK_1_8))
libraryjars(mapOf("filter" to "!META-INF/versions/**"), proguardLibraryJars)
libraryjars(
files(
firstFromJavaHomeThatExists("jre/lib/rt.jar", "../Classes/classes.jar", jdkHome = jdkHome!!),
firstFromJavaHomeThatExists("jre/lib/jsse.jar", "../Classes/jsse.jar", jdkHome = jdkHome!!),
toolsJarFile(jdkHome = jdkHome!!)
javaLauncher.map {
firstFromJavaHomeThatExists(
"jre/lib/rt.jar",
"../Classes/classes.jar",
jdkHome = it.metadata.installationPath.asFile
)
},
javaLauncher.map {
firstFromJavaHomeThatExists(
"jre/lib/jsse.jar",
"../Classes/jsse.jar",
jdkHome = it.metadata.installationPath.asFile
)
},
javaLauncher.map {
Jvm.forHome(it.metadata.installationPath.asFile).toolsJar
}
)
)
}
@@ -3,12 +3,6 @@ apply plugin: 'jps-compatible'
configureGradlePluginPublishing(project)
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
options.fork = false
}
pill {
variant = 'FULL'
}
@@ -60,5 +54,3 @@ pluginBundle {
}
configurePluginMarkers(project)
test.executable = "${JDK_18}/bin/java"
@@ -3,12 +3,6 @@ apply plugin: 'jps-compatible'
configurePublishing(project)
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
options.fork = false
}
pill {
variant = 'FULL'
}
@@ -45,5 +39,3 @@ ArtifactsKt.noDefaultJar(project)
ArtifactsKt.runtimeJar(project, EmbeddableKt.rewriteDefaultJarDepsToShadedCompiler(project, {}), {})
configureSourcesJar()
configureJavadocJar()
test.executable = "${JDK_18}/bin/java"
@@ -6,12 +6,6 @@ dependencies {
embedded(project(":kotlinx-serialization-compiler-plugin")) { transitive = false }
}
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
options.fork = false
}
TaskProvider<Jar> jar = tasks.named("jar")
jar.configure {
manifestAttributes(manifest, project)
@@ -7,12 +7,6 @@ pill {
variant = 'FULL'
}
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
options.fork = false
}
dependencies {
compileOnly project(':kotlin-gradle-plugin')
compile project(':kotlin-gradle-plugin-api')
@@ -5,12 +5,7 @@ plugins {
id("jps-compatible")
}
jvmTarget = "1.6"
tasks.withType<JavaCompile> {
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
}
project.updateJvmTarget("1.6")
sourceSets {
"main" { projectDefault() }
+3 -1
View File
@@ -2,7 +2,9 @@ description 'Kotlin Script Runtime'
apply plugin: 'kotlin'
configureJvm6Project(project)
JvmToolchain.configureJvmToolchain(project, JdkMajorVersion.JDK_1_6)
LibrariesCommon.disableDeprecatedJvmTargetWarning(project)
configurePublishing(project)
dependencies {