[Gradle, JS] Declare default configurations in js single plugin
Because in Kotlin DSL we want to declare configurations in methods instead of extensions of Strings We need to create configurations explicitly in plugin
This commit is contained in:
+28
-1
@@ -10,10 +10,12 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.configureDefaultVersionsResolutionStrategy
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
|
||||
open class KotlinJsPlugin(
|
||||
private val kotlinPluginVersion: String
|
||||
@@ -34,5 +36,30 @@ open class KotlinJsPlugin(
|
||||
irPreset = KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion)
|
||||
legacyPreset = KotlinJsSingleTargetPreset(project, kotlinPluginVersion)
|
||||
}
|
||||
|
||||
// Explicitly create configurations for main and test
|
||||
// It is because in single platform we want to declare dependencies with methods not with strings in Kotlin DSL
|
||||
// implementation("foo") instead of "implementation"("foo")
|
||||
val configurations = project.configurations
|
||||
listOf(MAIN_COMPILATION_NAME, TEST_COMPILATION_NAME)
|
||||
// in main compilation we don't need additional name
|
||||
.map { it.removeSuffix(MAIN_COMPILATION_NAME) }
|
||||
.forEach { baseCompilationName ->
|
||||
listOf(
|
||||
COMPILE_ONLY,
|
||||
COMPILE,
|
||||
IMPLEMENTATION,
|
||||
API,
|
||||
RUNTIME_ONLY,
|
||||
RUNTIME
|
||||
).forEach { baseConfigurationName ->
|
||||
configurations.maybeCreate(
|
||||
lowerCamelCaseName(
|
||||
baseCompilationName,
|
||||
baseConfigurationName
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user