Fixed setting target version if toolchain is not set
#KT-48226 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
41e2deb751
commit
ebcc6eec97
+8
-1
@@ -42,6 +42,9 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
.property(Jvm.current())
|
.property(Jvm.current())
|
||||||
.chainedFinalizeValueOnRead()
|
.chainedFinalizeValueOnRead()
|
||||||
|
|
||||||
|
@get:Internal
|
||||||
|
internal var providedJvmExplicitlySet = false
|
||||||
|
|
||||||
@get:Internal
|
@get:Internal
|
||||||
internal val providedJvm: Property<Jvm> = objects
|
internal val providedJvm: Property<Jvm> = objects
|
||||||
.propertyWithConvention(currentJvm)
|
.propertyWithConvention(currentJvm)
|
||||||
@@ -115,6 +118,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
providedJvm,
|
providedJvm,
|
||||||
currentGradleVersion,
|
currentGradleVersion,
|
||||||
objects,
|
objects,
|
||||||
|
{ providedJvmExplicitlySet = true },
|
||||||
kotlinCompileTaskProvider
|
kotlinCompileTaskProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -146,7 +150,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
"\"updateJvmTarget()\" method should be called only on task execution!"
|
"\"updateJvmTarget()\" method should be called only on task execution!"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (providedJvm.isPresent) {
|
if (providedJvmExplicitlySet) {
|
||||||
val jdkVersion = javaVersion.get()
|
val jdkVersion = javaVersion.get()
|
||||||
|
|
||||||
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
// parentKotlinOptionsImpl is set from 'kotlin-android' plugin
|
||||||
@@ -195,6 +199,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
private val providedJvm: Property<Jvm>,
|
private val providedJvm: Property<Jvm>,
|
||||||
private val currentGradleVersion: GradleVersion,
|
private val currentGradleVersion: GradleVersion,
|
||||||
private val objects: ObjectFactory,
|
private val objects: ObjectFactory,
|
||||||
|
private val updateProvidedJdkCallback: () -> Unit,
|
||||||
kotlinCompileTaskProvider: () -> KotlinCompile?
|
kotlinCompileTaskProvider: () -> KotlinCompile?
|
||||||
) : JvmTargetUpdater(kotlinCompileTaskProvider),
|
) : JvmTargetUpdater(kotlinCompileTaskProvider),
|
||||||
KotlinJavaToolchain.JdkSetter {
|
KotlinJavaToolchain.JdkSetter {
|
||||||
@@ -210,6 +215,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
"Supplied jdkHomeLocation does not exists. You supplied: $jdkHomeLocation"
|
"Supplied jdkHomeLocation does not exists. You supplied: $jdkHomeLocation"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateProvidedJdkCallback.invoke()
|
||||||
providedJvm.set(
|
providedJvm.set(
|
||||||
objects.providerWithLazyConvention {
|
objects.providerWithLazyConvention {
|
||||||
updateJvmTarget(jdkVersion)
|
updateJvmTarget(jdkVersion)
|
||||||
@@ -234,6 +240,7 @@ internal abstract class DefaultKotlinJavaToolchain @Inject constructor(
|
|||||||
override fun use(
|
override fun use(
|
||||||
javaLauncher: Provider<JavaLauncher>
|
javaLauncher: Provider<JavaLauncher>
|
||||||
) {
|
) {
|
||||||
|
providedJvmExplicitlySet = true
|
||||||
providedJvm.set(
|
providedJvm.set(
|
||||||
javaLauncher.map {
|
javaLauncher.map {
|
||||||
val metadata = javaLauncher.get().metadata
|
val metadata = javaLauncher.get().metadata
|
||||||
|
|||||||
Reference in New Issue
Block a user