From 32a0bb9f0e52a169e834ad2e8601fdde44a2ed94 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Tue, 4 Jun 2019 12:34:13 +0300 Subject: [PATCH] Gradle, js, npm: fix npm aggregated configuration attributes #KT-31788 Fixed --- .../gradle/targets/js/npm/NpmProjectVisitor.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProjectVisitor.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProjectVisitor.kt index c5455642621..dc46a4766c3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProjectVisitor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProjectVisitor.kt @@ -7,12 +7,15 @@ package org.jetbrains.kotlin.gradle.targets.js.npm import org.gradle.api.Project import org.gradle.api.artifacts.Configuration +import org.gradle.api.attributes.Usage import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages +import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.nodeJs @@ -101,7 +104,14 @@ internal class NpmProjectVisitor(val resolver: NpmResolver, val project: Project val npmDependencies = mutableSetOf() val gradleDeps = NpmGradleDependencies() - val aggregateConfiguration = project.configurations.create("$name-js") + val aggregateConfiguration = project.configurations.create("$name-npm") { + it.usesPlatformOf(compilation.target) + it.attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(compilation.target)) + it.isVisible = false + it.isCanBeConsumed = false + it.isCanBeResolved = true + it.description = "NPM configuration for $compilation." + } compilation.allKotlinSourceSets.forEach { sourceSet -> sourceSet.relatedConfigurationNames.forEach { configurationName ->