diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleCliCommonizer.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleCliCommonizer.kt index cec95089cbd..dbb0fa8a8b5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleCliCommonizer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleCliCommonizer.kt @@ -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()}") + ) + } } - } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDependencyResolver.kt index e6610dcd3fc..5435fde8984 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDependencyResolver.kt @@ -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 } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt index 51df2c35d31..a1b1754e37d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt @@ -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()}") diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt index dea7247291b..8a47e727bd5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt index 0a6c13f2688..27ef451fd4f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt @@ -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 copyAttribute(attribute: Attribute, from: AttributeContainer, to: AttributeContainer) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/createExternalKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/createExternalKotlinTarget.kt index 059126b8b37..69850b8c37c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/createExternalKotlinTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/createExternalKotlinTarget.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/ConfigurationUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/ConfigurationUtils.kt index 81c21c2b869..33b47e4d93e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/ConfigurationUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/ConfigurationUtils.kt @@ -102,12 +102,3 @@ internal inline fun 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 -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resolvableMetadataConfiguration.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resolvableMetadataConfiguration.kt index e061423901c..4b47696a8a5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resolvableMetadataConfiguration.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resolvableMetadataConfiguration.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsRootPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsRootPlugin.kt index a682d4ddc20..28690a836cd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsRootPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsRootPlugin.kt @@ -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 { 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 } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt index 8752f1363f3..86247ba89a1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt @@ -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 { it.configuration = provider { this.project.configurations.detachedConfiguration(this.project.dependencies.create(it.ivyDependency)) + .markResolvable() .also { conf -> conf.isTransitive = false } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt index 29082b08466..801e35aa6a1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt @@ -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) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt index 38a84686673..6eb13e9ee79 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt @@ -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( 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) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt index a2df4b7f124..d553489ebbd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt @@ -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 : 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 -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt index 9808c6699ef..39b61a24082 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt @@ -60,4 +60,14 @@ private constructor( val componentId = dependency.selected.id return artifactsByComponentId[componentId] ?: emptyList() } -} \ No newline at end of file +} + +internal fun Configuration.markConsumable(): Configuration = apply { + this.isCanBeConsumed = true + this.isCanBeResolved = false +} + +internal fun Configuration.markResolvable(): Configuration = apply { + this.isCanBeConsumed = false + this.isCanBeResolved = true +}