[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
|
||||
isCanBeConsumed = true
|
||||
configureSourcesPublicationAttributes(target)
|
||||
project.whenEvaluated { isCanBeConsumed = target.internal.isSourcesPublishable }
|
||||
project.launch { isCanBeConsumed = target.internal.isSourcesPublishableFuture.await() }
|
||||
}
|
||||
|
||||
if (createTestCompilation) {
|
||||
|
||||
+9
-1
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
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
|
||||
|
||||
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||
@@ -24,4 +26,10 @@ internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||
internal val KotlinTarget.internal: InternalKotlinTarget
|
||||
get() = (this as? InternalKotlinTarget) ?: throw IllegalArgumentException(
|
||||
"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.mpp.KotlinTargetSoftwareComponent
|
||||
import org.jetbrains.kotlin.tooling.core.UnsafeApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.isSourcesPublishableFuture
|
||||
|
||||
|
||||
|
||||
internal fun ExternalKotlinTargetSoftwareComponent(
|
||||
@@ -32,8 +34,12 @@ internal fun ExternalKotlinTargetSoftwareComponent(
|
||||
details.mapToMavenScope("runtime")
|
||||
}
|
||||
|
||||
if (target.isSourcesPublishable) {
|
||||
adhocSoftwareComponent.addVariantsFromConfiguration(target.sourcesElementsPublishedConfiguration) { _ -> }
|
||||
target.project.launch {
|
||||
if (target.isSourcesPublishableFuture.await()) {
|
||||
adhocSoftwareComponent.addVariantsFromConfiguration(target.sourcesElementsPublishedConfiguration) { details ->
|
||||
details.mapToOptional()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(UnsafeApi::class)
|
||||
|
||||
Reference in New Issue
Block a user