Mark all internal configuration as resolvable and non-consumable
^KT-55632 Fixed
This commit is contained in:
committed by
Space Team
parent
20b81464be
commit
0bce15b862
+12
-11
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.commonizer.CliCommonizer
|
||||
import org.jetbrains.kotlin.gradle.internal.KOTLIN_MODULE_GROUP
|
||||
import org.jetbrains.kotlin.gradle.plugin.KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.plugin.usageByName
|
||||
import org.jetbrains.kotlin.gradle.utils.named
|
||||
|
||||
@@ -29,16 +30,16 @@ internal fun GradleCliCommonizer(commonizerToolRunner: KotlinNativeCommonizerToo
|
||||
|
||||
internal fun Project.maybeCreateCommonizerClasspathConfiguration(): Configuration {
|
||||
return configurations.findByName(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME)
|
||||
?: project.configurations.create(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME).run {
|
||||
isCanBeResolved = true
|
||||
isCanBeConsumed = false
|
||||
attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
||||
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
|
||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, usageByName(Usage.JAVA_RUNTIME))
|
||||
defaultDependencies { dependencies ->
|
||||
dependencies.add(
|
||||
project.dependencies.create("$KOTLIN_MODULE_GROUP:$KOTLIN_KLIB_COMMONIZER_EMBEDDABLE:${getKotlinPluginVersion()}")
|
||||
)
|
||||
?: project.configurations.create(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME)
|
||||
.markResolvable()
|
||||
.run {
|
||||
attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
||||
attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
|
||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, usageByName(Usage.JAVA_RUNTIME))
|
||||
defaultDependencies { dependencies ->
|
||||
dependencies.add(
|
||||
project.dependencies.create("$KOTLIN_MODULE_GROUP:$KOTLIN_KLIB_COMMONIZER_EMBEDDABLE:${getKotlinPluginVersion()}")
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.idea.kpm.*
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmPlatformDependencyResolver.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmConfigurationAttributesSetup
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
|
||||
/**
|
||||
* Resolves 'platform' binary dependencies for a given variant or fragment.
|
||||
@@ -105,7 +106,7 @@ private fun ArtifactResolution.Variant.createVariantArtifactView(fragment: Gradl
|
||||
}
|
||||
|
||||
private fun ArtifactResolution.PlatformFragment.createPlatformFragmentArtifactView(fragment: GradleKpmFragment): ArtifactView {
|
||||
val fragmentCompileDependencies = fragment.project.configurations.detachedConfiguration()
|
||||
val fragmentCompileDependencies = fragment.project.configurations.detachedConfiguration().markResolvable()
|
||||
|
||||
fragmentCompileDependencies.dependencies.addAll(
|
||||
fragment.transitiveApiConfiguration.allDependencies.matching { it !is ProjectDependency }
|
||||
|
||||
+3
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20GradlePlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||
import org.jetbrains.kotlin.gradle.report.BuildMetricsService
|
||||
@@ -87,6 +88,7 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
|
||||
project.configurations.maybeCreate(PLUGIN_CLASSPATH_CONFIGURATION_NAME).apply {
|
||||
isVisible = false
|
||||
isCanBeConsumed = false
|
||||
isCanBeResolved = true
|
||||
addGradlePluginMetadataAttributes(project)
|
||||
}
|
||||
|
||||
@@ -105,6 +107,7 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
|
||||
project
|
||||
.configurations
|
||||
.maybeCreate(COMPILER_CLASSPATH_CONFIGURATION_NAME)
|
||||
.markResolvable()
|
||||
.defaultDependencies {
|
||||
it.add(
|
||||
project.dependencies.create("$KOTLIN_MODULE_GROUP:$KOTLIN_COMPILER_EMBEDDABLE:${project.getKotlinPluginVersion()}")
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmVariant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.resolvableMetadataConfiguration
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.InternalKotlinSourceSet
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ import org.gradle.jvm.tasks.Jar
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.*
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.COMMON_MAIN_ELEMENTS_CONFIGURATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled
|
||||
@@ -184,7 +185,7 @@ class DefaultKotlinUsageContext(
|
||||
* attributes schema migration, or create proper, non-detached configurations for publishing that are separated from the
|
||||
* configurations used for project-to-project dependencies
|
||||
*/
|
||||
val result = project.configurations.detachedConfiguration().attributes
|
||||
val result = project.configurations.detachedConfiguration().markResolvable().attributes
|
||||
|
||||
// Capture type parameter T:
|
||||
fun <T> copyAttribute(attribute: Attribute<T>, from: AttributeContainer, to: AttributeContainer) {
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.configureSourcesPublicationAttributes
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.markConsumable
|
||||
import org.jetbrains.kotlin.gradle.utils.markConsumable
|
||||
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
|
||||
-9
@@ -102,12 +102,3 @@ internal inline fun <reified T> Project.listProperty(noinline itemsProvider: ()
|
||||
objects.listProperty(T::class.java).apply { set(provider(itemsProvider)) }
|
||||
|
||||
|
||||
internal fun Configuration.markConsumable(): Configuration = apply {
|
||||
this.isCanBeConsumed = true
|
||||
this.isCanBeResolved = false
|
||||
}
|
||||
|
||||
internal fun Configuration.markResolvable(): Configuration = apply {
|
||||
this.isCanBeConsumed = false
|
||||
this.isCanBeResolved = true
|
||||
}
|
||||
+1
-1
@@ -9,7 +9,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.InternalKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.METADATA_CONFIGURATION_NAME_SUFFIX
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.disambiguateName
|
||||
|
||||
+2
@@ -9,6 +9,7 @@ import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Companion.EXTENSION_NAME
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
|
||||
@@ -35,6 +36,7 @@ open class NodeJsRootPlugin : Plugin<Project> {
|
||||
it.description = "Download and install a local node/npm version"
|
||||
it.configuration = provider {
|
||||
this.project.configurations.detachedConfiguration(this.project.dependencies.create(it.ivyDependency))
|
||||
.markResolvable()
|
||||
.also { conf -> conf.isTransitive = false }
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
|
||||
@@ -36,6 +37,7 @@ open class YarnPlugin : Plugin<Project> {
|
||||
|
||||
it.configuration = provider {
|
||||
this.project.configurations.detachedConfiguration(this.project.dependencies.create(it.ivyDependency))
|
||||
.markResolvable()
|
||||
.also { conf -> conf.isTransitive = false }
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -147,6 +147,7 @@ class NativeCompilerDownloader(
|
||||
}
|
||||
|
||||
val configuration = project.configurations.detachedConfiguration(compilerDependency)
|
||||
.markResolvable()
|
||||
logger.lifecycle("\nPlease wait while Kotlin/Native compiler $compilerVersion is being installed.")
|
||||
|
||||
if (!kotlinProperties.nativeDownloadFromMaven) {
|
||||
|
||||
+2
-5
@@ -8,7 +8,6 @@
|
||||
package org.jetbrains.kotlin.gradle.tasks.configuration
|
||||
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.util.lang.JavaVersion
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.attributes.Attribute
|
||||
import org.gradle.api.file.FileCollection
|
||||
@@ -17,7 +16,6 @@ import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.dsl.topLevelExtension
|
||||
import org.jetbrains.kotlin.gradle.internal.*
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.KAPT_SUBPLUGIN_ID
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.classLoadersCacheSize
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.disableClassloaderCacheForProcessors
|
||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isIncludeCompileClasspath
|
||||
@@ -26,10 +24,9 @@ import org.jetbrains.kotlin.gradle.internal.kapt.incremental.CLASS_STRUCTURE_ART
|
||||
import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformAction
|
||||
import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformLegacyAction
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.toCompilerPluginOptions
|
||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||
import org.jetbrains.kotlin.gradle.utils.listProperty
|
||||
import java.io.File
|
||||
import java.util.concurrent.Callable
|
||||
@@ -88,7 +85,7 @@ internal open class KaptConfig<TASK : KaptTask>(
|
||||
return if (project.isIncrementalKapt()) {
|
||||
maybeRegisterTransform(project)
|
||||
|
||||
val classStructureConfiguration = project.configurations.detachedConfiguration()
|
||||
val classStructureConfiguration = project.configurations.detachedConfiguration().markResolvable()
|
||||
|
||||
// Wrap the `kotlinCompile.classpath` into a file collection, so that, if the classpath is represented by a configuration,
|
||||
// the configuration is not extended (via extendsFrom, which normally happens when one configuration is _added_ into another)
|
||||
|
||||
+2
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.gradle.plugin.tcsOrNull
|
||||
import org.jetbrains.kotlin.gradle.report.BuildMetricsService
|
||||
@@ -33,7 +34,7 @@ internal open class BaseKotlinCompileConfig<TASK : KotlinCompile> : AbstractKotl
|
||||
// composite builds (e.g., https://issuetracker.google.com/183952598).
|
||||
project.configurations.detachedConfiguration(
|
||||
project.dependencies.create(objectFactory.fileCollection().from(project.provider { taskProvider.get().libraries }))
|
||||
)
|
||||
).markResolvable()
|
||||
} else null
|
||||
|
||||
taskProvider.configure { task ->
|
||||
|
||||
+11
-1
@@ -60,4 +60,14 @@ private constructor(
|
||||
val componentId = dependency.selected.id
|
||||
return artifactsByComponentId[componentId] ?: emptyList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Configuration.markConsumable(): Configuration = apply {
|
||||
this.isCanBeConsumed = true
|
||||
this.isCanBeResolved = false
|
||||
}
|
||||
|
||||
internal fun Configuration.markResolvable(): Configuration = apply {
|
||||
this.isCanBeConsumed = false
|
||||
this.isCanBeResolved = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user