Skip to content

Commit fd975db

Browse files
committed
Allow overriding Java toolchain version with a gradle property
1 parent 3963223 commit fd975db

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,8 @@ git submodule update
365365
The project requires JDK 8 to build classes and to run tests.
366366
Gradle will try to find it among the installed JDKs or [provision](https://docs.gradle.org/current/userguide/toolchains.html#sec:provisioning) it automatically if it couldn't be found.
367367
The path to JDK 8 can be additionally specified with the environment variable `JDK_8`.
368-
<!-- For local builds, you can use a later version of JDK if you don't have that
369-
version installed. -->
368+
369+
> For local builds, you can use a later version of JDK if you don't have that
370+
version installed. Specify the version of this JDK with the `java.mainToolchainVersion` Gradle property.
370371

371372
After that, the project can be opened in IDEA and built with Gradle.

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ infra {
1414
}
1515
}
1616

17+
val mainJavaToolchainVersion by ext(project.property("java.mainToolchainVersion"))
1718

1819
allprojects {
1920
repositories {

core/build.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ base {
1717
archivesBaseName = "kotlinx-datetime" // doesn't work
1818
}
1919

20+
val mainJavaToolchainVersion: String by project
2021
val serializationVersion: String by project
2122

2223
java {
23-
toolchain { languageVersion.set(JavaLanguageVersion.of(8)) }
24+
toolchain { languageVersion.set(JavaLanguageVersion.of(mainJavaToolchainVersion)) }
25+
with(javaToolchains.launcherFor(toolchain).get().metadata) {
26+
logger.info("Using JDK $languageVersion toolchain installed in $installationPath")
27+
}
2428
}
25-
logger.info("Using JDK 8 toolchain installed in ${javaToolchains.launcherFor(java.toolchain).get().metadata.installationPath}")
2629

2730
kotlin {
2831
explicitApi()

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ versionSuffix=SNAPSHOT
88
kotlinVersion=1.5.30
99
serializationVersion=1.3.0
1010

11+
java.mainToolchainVersion=8
12+
1113
kotlin.mpp.enableGranularSourceSetsMetadata=true
1214
kotlin.mpp.enableCompatibilityMetadataVariant=true
1315
kotlin.js.compiler=both

serialization/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ plugins {
55
kotlin("plugin.serialization")
66
}
77

8+
val mainJavaToolchainVersion: String by project
89
val serializationVersion: String by project
910

1011
java {
11-
toolchain { languageVersion.set(JavaLanguageVersion.of(8)) }
12+
toolchain { languageVersion.set(JavaLanguageVersion.of(mainJavaToolchainVersion)) }
1213
}
1314

1415
kotlin {

0 commit comments

Comments
 (0)