From d9c08945a313a6bf31c3a32d8cbdb5489159e3d8 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 18 Feb 2020 14:51:14 +0300 Subject: [PATCH] [Gradle, JS] Common dependency configurations for both js --- .../gradle/targets/js/KotlinJsCompilation.kt | 42 +++++++++++++++---- .../gradle/targets/js/KotlinJsTarget.kt | 3 ++ .../targets/js/ir/KotlinJsIrCompilation.kt | 10 +++-- .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 5 +++ 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index 64c4415f8dc..b8baf32487d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -9,10 +9,9 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions -import org.jetbrains.kotlin.gradle.plugin.JsCompilerType +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.removeJsCompilerSuffix import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile @@ -35,12 +34,37 @@ open class KotlinJsCompilation( packageJsonHandlers.add(handler) } - override val defaultSourceSetName: String - get() = lowerCamelCaseName( - (target as KotlinJsTarget).irTarget?.let { - target.disambiguationClassifier - ?.removeJsCompilerSuffix(JsCompilerType.legacy) - } ?: target.disambiguationClassifier, - compilationName + override val apiConfigurationName: String + get() = disambiguateNameInPlatform("api") + + override val implementationConfigurationName: String + get() = disambiguateNameInPlatform("implementation") + + override val compileOnlyConfigurationName: String + get() = disambiguateNameInPlatform("compileOnly") + + override val runtimeOnlyConfigurationName: String + get() = disambiguateNameInPlatform("runtimeOnly") + + protected open val disambiguationClassifierInPlatform: String? + get() = (target as KotlinJsTarget).disambiguationClassifierInPlatform + + private fun disambiguateNameInPlatform(simpleName: String): String { + return lowerCamelCaseName( + disambiguationClassifierInPlatform, + compilationName.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME }, + simpleName ) + } + + override val defaultSourceSetName: String + get() { + val target = target as KotlinJsTarget + return lowerCamelCaseName( + target.irTarget?.let { + target.disambiguationClassifierInPlatform + } ?: target.disambiguationClassifier, + compilationName + ) + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt index b789b2c7132..09e23b69597 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt @@ -40,6 +40,9 @@ constructor( override lateinit var testRuns: NamedDomainObjectContainer internal set + val disambiguationClassifierInPlatform: String? + get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.legacy) + override val kotlinComponents: Set by lazy { if (irTarget == null) super.kotlinComponents diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt index 77006289aae..4d3b6303594 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt @@ -7,7 +7,9 @@ package org.jetbrains.kotlin.gradle.targets.js.ir import org.gradle.api.file.SourceDirectorySet import org.gradle.api.tasks.TaskProvider -import org.jetbrains.kotlin.gradle.plugin.* +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.PRODUCTION @@ -43,12 +45,14 @@ class KotlinJsIrCompilation( allSources.add(sourceSet.kotlin) } + override val disambiguationClassifierInPlatform: String? + get() = (target as KotlinJsIrTarget).disambiguationClassifierInPlatform + override val defaultSourceSetName: String get() { return lowerCamelCaseName( if ((target as KotlinJsIrTarget).mixedMode) - target.disambiguationClassifier - ?.removeJsCompilerSuffix(JsCompilerType.ir) + target.disambiguationClassifierInPlatform else target.disambiguationClassifier, compilationName diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 9b4aa721275..7da64b443f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -9,9 +9,11 @@ import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project import org.gradle.api.Task import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix +import org.jetbrains.kotlin.gradle.plugin.JsCompilerType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget +import org.jetbrains.kotlin.gradle.plugin.removeJsCompilerSuffix import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource import org.jetbrains.kotlin.gradle.targets.js.KotlinJsProducingType import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun @@ -34,6 +36,9 @@ constructor( override lateinit var testRuns: NamedDomainObjectContainer internal set + val disambiguationClassifierInPlatform: String? + get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.ir) + var producingType: KotlinJsProducingType? = null private val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)