[Gradle, JS] Resolution of compilation's configurations inside NPM conf
^KT-40201 fixed
This commit is contained in:
+14
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.sources
|
|||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope.*
|
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope.*
|
||||||
import org.jetbrains.kotlin.gradle.utils.API
|
import org.jetbrains.kotlin.gradle.utils.API
|
||||||
@@ -31,6 +32,19 @@ internal fun Project.sourceSetDependencyConfigurationByScope(sourceSet: KotlinSo
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
internal fun Project.compilationDependencyConfigurationByScope(
|
||||||
|
compilation: KotlinCompilation<*>,
|
||||||
|
scope: KotlinDependencyScope
|
||||||
|
): Configuration =
|
||||||
|
project.configurations.getByName(
|
||||||
|
when (scope) {
|
||||||
|
API_SCOPE -> compilation.apiConfigurationName
|
||||||
|
IMPLEMENTATION_SCOPE -> compilation.implementationConfigurationName
|
||||||
|
COMPILE_ONLY_SCOPE -> compilation.compileOnlyConfigurationName
|
||||||
|
RUNTIME_ONLY_SCOPE -> compilation.runtimeOnlyConfigurationName
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
internal fun Project.sourceSetMetadataConfigurationByScope(sourceSet: KotlinSourceSet, scope: KotlinDependencyScope): Configuration =
|
internal fun Project.sourceSetMetadataConfigurationByScope(sourceSet: KotlinSourceSet, scope: KotlinDependencyScope): Configuration =
|
||||||
project.configurations.getByName(
|
project.configurations.getByName(
|
||||||
when (scope) {
|
when (scope) {
|
||||||
|
|||||||
+10
-4
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
|
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||||
@@ -133,10 +134,15 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
all.isCanBeResolved = true
|
all.isCanBeResolved = true
|
||||||
all.description = "NPM configuration for $compilation."
|
all.description = "NPM configuration for $compilation."
|
||||||
|
|
||||||
compilation.allKotlinSourceSets.forEach { sourceSet ->
|
KotlinDependencyScope.values().forEach { scope ->
|
||||||
KotlinDependencyScope.values().forEach { scope ->
|
val compilationConfiguration = project.compilationDependencyConfigurationByScope(
|
||||||
val configuration = project.sourceSetDependencyConfigurationByScope(sourceSet, scope)
|
compilation,
|
||||||
all.extendsFrom(configuration)
|
scope
|
||||||
|
)
|
||||||
|
all.extendsFrom(compilationConfiguration)
|
||||||
|
compilation.allKotlinSourceSets.forEach { sourceSet ->
|
||||||
|
val sourceSetConfiguration = project.sourceSetDependencyConfigurationByScope(sourceSet, scope)
|
||||||
|
all.extendsFrom(sourceSetConfiguration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user