[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
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
)
}
}
@@ -40,6 +40,9 @@ constructor(
override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun>
internal set
val disambiguationClassifierInPlatform: String?
get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.legacy)
override val kotlinComponents: Set<KotlinTargetComponent> by lazy {
if (irTarget == null)
super.kotlinComponents
@@ -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
@@ -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<KotlinJsReportAggregatingTestRun>
internal set
val disambiguationClassifierInPlatform: String?
get() = disambiguationClassifier?.removeJsCompilerSuffix(JsCompilerType.ir)
var producingType: KotlinJsProducingType? = null
private val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)