Skip to content

Commit

Permalink
Move toolchain version and vendor to single place and make them confi…
Browse files Browse the repository at this point in the history
…gurable
  • Loading branch information
StefMa committed Feb 28, 2024
1 parent feb5ef6 commit ea1a799
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 6 deletions.
18 changes: 18 additions & 0 deletions buildSrc/src/main/kotlin/JvmToolchain.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.gradle.jvm.toolchain.JvmVendorSpec
import org.gradle.api.Project

private const val DEFAULT_JVM_VERSION = 11

abstract class PklJvmToolchain(private val project: Project) {
val version: JavaLanguageVersion
get() {
val jvmVersion = (project.findProperty("PKL_JVM_VERSION") as? String)?.toInt() ?: DEFAULT_JVM_VERSION
return JavaLanguageVersion.of(jvmVersion)
}

val vendor: JvmVendorSpec
get() {
return JvmVendorSpec.ADOPTIUM
}
}
6 changes: 4 additions & 2 deletions buildSrc/src/main/kotlin/pklJavaLibrary.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ val sourcesJarConfiguration = configurations.register("sourcesJar")
// Version Catalog library symbols.
val libs = the<LibrariesForLibs>()

val pklJvmToolchain = extensions.getByType<PklJvmToolchain>()

java {
withSourcesJar() // creates `sourcesJar` task
withJavadocJar()

toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
vendor.set(JvmVendorSpec.ADOPTIUM)
languageVersion.set(pklJvmToolchain.version)
vendor.set(pklJvmToolchain.vendor)
}
}

Expand Down
6 changes: 4 additions & 2 deletions buildSrc/src/main/kotlin/pklKotlinLibrary.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ tasks.compileKotlin {
enabled = true // disabled by pklJavaLibrary
}

val pklJvmToolchain = extensions.getByType<PklJvmToolchain>()

kotlin.jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(11))
vendor.set(JvmVendorSpec.ADOPTIUM)
languageVersion.set(pklJvmToolchain.version)
vendor.set(pklJvmToolchain.vendor)
}

spotless {
Expand Down
6 changes: 4 additions & 2 deletions buildSrc/src/main/kotlin/pklKotlinTest.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ dependencies {
testRuntimeOnly(buildInfo.libs.findLibrary("junitEngine").get())
}

val pklJvmToolchain = extensions.create<PklJvmToolchain>("pklJvmToolchain", project)

kotlin.jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(11))
vendor.set(JvmVendorSpec.ADOPTIUM)
languageVersion.set(pklJvmToolchain.version)
vendor.set(pklJvmToolchain.vendor)
}

tasks.withType<Test>().configureEach {
Expand Down

0 comments on commit ea1a799

Please sign in to comment.