[Gradle][Minor] Handle 'isSourcesPublishable' more lazily
... as the value is allowed to change until 'finaliseDsl' ^KT-60159 Verification Pending
This commit is contained in:
committed by
Space Team
parent
9f2c2b7265
commit
fd50b80aa1
+1
-1
@@ -210,7 +210,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
|||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
isCanBeConsumed = true
|
isCanBeConsumed = true
|
||||||
configureSourcesPublicationAttributes(target)
|
configureSourcesPublicationAttributes(target)
|
||||||
project.whenEvaluated { isCanBeConsumed = target.internal.isSourcesPublishable }
|
project.launch { isCanBeConsumed = target.internal.isSourcesPublishableFuture.await() }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (createTestCompilation) {
|
if (createTestCompilation) {
|
||||||
|
|||||||
+8
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.await
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.futureExtension
|
||||||
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
|
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
|
||||||
|
|
||||||
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||||
@@ -25,3 +27,9 @@ internal val KotlinTarget.internal: InternalKotlinTarget
|
|||||||
get() = (this as? InternalKotlinTarget) ?: throw IllegalArgumentException(
|
get() = (this as? InternalKotlinTarget) ?: throw IllegalArgumentException(
|
||||||
"KotlinTarget($name) ${this::class} does not implement ${InternalKotlinTarget::class}"
|
"KotlinTarget($name) ${this::class} does not implement ${InternalKotlinTarget::class}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
internal val InternalKotlinTarget.isSourcesPublishableFuture by futureExtension("isSourcesPublishableFuture") {
|
||||||
|
KotlinPluginLifecycle.Stage.AfterFinaliseDsl.await()
|
||||||
|
isSourcesPublishable
|
||||||
|
}
|
||||||
+8
-2
@@ -16,6 +16,8 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.launch
|
import org.jetbrains.kotlin.gradle.plugin.launch
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetSoftwareComponent
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetSoftwareComponent
|
||||||
import org.jetbrains.kotlin.tooling.core.UnsafeApi
|
import org.jetbrains.kotlin.tooling.core.UnsafeApi
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.isSourcesPublishableFuture
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internal fun ExternalKotlinTargetSoftwareComponent(
|
internal fun ExternalKotlinTargetSoftwareComponent(
|
||||||
@@ -32,8 +34,12 @@ internal fun ExternalKotlinTargetSoftwareComponent(
|
|||||||
details.mapToMavenScope("runtime")
|
details.mapToMavenScope("runtime")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.isSourcesPublishable) {
|
target.project.launch {
|
||||||
adhocSoftwareComponent.addVariantsFromConfiguration(target.sourcesElementsPublishedConfiguration) { _ -> }
|
if (target.isSourcesPublishableFuture.await()) {
|
||||||
|
adhocSoftwareComponent.addVariantsFromConfiguration(target.sourcesElementsPublishedConfiguration) { details ->
|
||||||
|
details.mapToOptional()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(UnsafeApi::class)
|
@OptIn(UnsafeApi::class)
|
||||||
|
|||||||
Reference in New Issue
Block a user