Skip to content

Commit ec793b4

Browse files
ausatiySpace
authored andcommitted
Fixed setting jvm target version if toolchain is not set
#KT-48226 Fixed
1 parent 7296d9a commit ec793b4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/DefaultKotlinJavaToolchain.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
4242
.property(Jvm.current())
4343
.chainedFinalizeValueOnRead()
4444

45+
@get:Internal
46+
internal var providedJvmExplicitlySet = false
47+
4548
@get:Internal
4649
internal val providedJvm: Property<Jvm> = objects
4750
.propertyWithConvention(currentJvm)
@@ -115,6 +118,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
115118
providedJvm,
116119
currentGradleVersion,
117120
objects,
121+
{ providedJvmExplicitlySet = true },
118122
kotlinCompileTaskProvider
119123
)
120124

@@ -146,7 +150,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
146150
"\"updateJvmTarget()\" method should be called only on task execution!"
147151
}
148152

149-
if (providedJvm.isPresent) {
153+
if (providedJvmExplicitlySet) {
150154
val jdkVersion = javaVersion.get()
151155

152156
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
@@ -195,6 +199,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
195199
private val providedJvm: Property<Jvm>,
196200
private val currentGradleVersion: GradleVersion,
197201
private val objects: ObjectFactory,
202+
private val updateProvidedJdkCallback: () -> Unit,
198203
kotlinCompileTaskProvider: () -> KotlinCompile?
199204
) : JvmTargetUpdater(kotlinCompileTaskProvider),
200205
KotlinJavaToolchain.JdkSetter {
@@ -210,6 +215,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
210215
"Supplied jdkHomeLocation does not exists. You supplied: $jdkHomeLocation"
211216
}
212217

218+
updateProvidedJdkCallback.invoke()
213219
providedJvm.set(
214220
objects.providerWithLazyConvention {
215221
updateJvmTarget(jdkVersion)
@@ -234,6 +240,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
234240
override fun use(
235241
javaLauncher: Provider<JavaLauncher>
236242
) {
243+
providedJvmExplicitlySet = true
237244
providedJvm.set(
238245
javaLauncher.map {
239246
val metadata = javaLauncher.get().metadata

0 commit comments

Comments
 (0)