[Gradle, JS] Common dependency configurations for both js

This commit is contained in:
Ilya Goncharov
2020-02-18 14:51:14 +03:00
parent ecb89ad259
commit d9c08945a3
4 changed files with 48 additions and 12 deletions
@@ -9,10 +9,9 @@
package org.jetbrains.kotlin.gradle.plugin.mpp package org.jetbrains.kotlin.gradle.plugin.mpp
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions 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.KotlinCompilationWithResources
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget 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.KotlinJsTarget
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
@@ -35,12 +34,37 @@ open class KotlinJsCompilation(
packageJsonHandlers.add(handler) packageJsonHandlers.add(handler)
} }
override val defaultSourceSetName: String override val apiConfigurationName: String
get() = lowerCamelCaseName( get() = disambiguateNameInPlatform("api")
(target as KotlinJsTarget).irTarget?.let {
target.disambiguationClassifier override val implementationConfigurationName: String
?.removeJsCompilerSuffix(JsCompilerType.legacy) get() = disambiguateNameInPlatform("implementation")
} ?: target.disambiguationClassifier,
compilationName 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
)
}
} }
@@ -40,6 +40,9 @@ constructor(
override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun> override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun>
internal set internal set
val disambiguationClassifierInPlatform: String?
get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.legacy)
override val kotlinComponents: Set<KotlinTargetComponent> by lazy { override val kotlinComponents: Set<KotlinTargetComponent> by lazy {
if (irTarget == null) if (irTarget == null)
super.kotlinComponents super.kotlinComponents
@@ -7,7 +7,9 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
import org.gradle.api.file.SourceDirectorySet import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.tasks.TaskProvider 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.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.DEVELOPMENT
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.PRODUCTION import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrType.PRODUCTION
@@ -43,12 +45,14 @@ class KotlinJsIrCompilation(
allSources.add(sourceSet.kotlin) allSources.add(sourceSet.kotlin)
} }
override val disambiguationClassifierInPlatform: String?
get() = (target as KotlinJsIrTarget).disambiguationClassifierInPlatform
override val defaultSourceSetName: String override val defaultSourceSetName: String
get() { get() {
return lowerCamelCaseName( return lowerCamelCaseName(
if ((target as KotlinJsIrTarget).mixedMode) if ((target as KotlinJsIrTarget).mixedMode)
target.disambiguationClassifier target.disambiguationClassifierInPlatform
?.removeJsCompilerSuffix(JsCompilerType.ir)
else else
target.disambiguationClassifier, target.disambiguationClassifier,
compilationName compilationName
@@ -9,9 +9,11 @@ import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.Task import org.gradle.api.Task
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix 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.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget 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.JsAggregatingExecutionSource
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsProducingType import org.jetbrains.kotlin.gradle.targets.js.KotlinJsProducingType
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
@@ -34,6 +36,9 @@ constructor(
override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun> override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun>
internal set internal set
val disambiguationClassifierInPlatform: String?
get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.ir)
var producingType: KotlinJsProducingType? = null var producingType: KotlinJsProducingType? = null
private val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix) private val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)