Implemented collecting JS compilation mode

#KT-36410 Fixed
This commit is contained in:
Andrey Uskov
2020-05-27 19:49:56 +03:00
parent 97039926f0
commit 8dcbc391fe
4 changed files with 29 additions and 4 deletions
@@ -100,7 +100,8 @@ class KotlinGradleFUSLogger : StartupActivity, DumbAware, Runnable {
container.log(
GradleStatisticsEvents.MPP,
StringMetrics.MPP_PLATFORMS,
BooleanMetrics.ENABLED_HMPP
BooleanMetrics.ENABLED_HMPP,
StringMetrics.JS_COMPILER_MODE
)
container.log(
@@ -14,11 +14,13 @@ import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
import kotlin.reflect.KClass
private const val KOTLIN_PROJECT_EXTENSION_NAME = "kotlin"
@@ -100,6 +102,16 @@ open class KotlinJsProjectExtension :
internal var _target: KotlinJsTargetDsl? = null
private set
companion object {
internal fun reportJsCompilerMode(compilerType: KotlinJsCompilerType) {
when (compilerType) {
KotlinJsCompilerType.LEGACY -> KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "legacy")
KotlinJsCompilerType.IR -> KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "ir")
KotlinJsCompilerType.BOTH -> KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "both")
}
}
}
@Deprecated("Use js() instead", ReplaceWith("js()"))
override var target: KotlinJsTargetDsl
get() {
@@ -126,17 +138,26 @@ open class KotlinJsProjectExtension :
}
if (_target == null) {
val target: KotlinJsTargetDsl = when (compiler ?: defaultJsCompilerType) {
val compilerOrDefault = compiler ?: defaultJsCompilerType
reportJsCompilerMode(compilerOrDefault)
val target: KotlinJsTargetDsl = when (compilerOrDefault) {
KotlinJsCompilerType.LEGACY -> legacyPreset
.also { it.irPreset = null }
.also {
it.irPreset = null
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "legacy")
}
.createTarget("js")
KotlinJsCompilerType.IR -> irPreset
.also { it.mixedMode = false }
.also {
it.mixedMode = false
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "ir")
}
.createTarget("js")
KotlinJsCompilerType.BOTH -> legacyPreset
.also {
irPreset.mixedMode = true
it.irPreset = irPreset
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "both")
}
.createTarget(
lowerCamelCaseName(
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.dsl
import groovy.lang.Closure
import org.gradle.util.ConfigureUtil
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension.Companion.reportJsCompilerMode
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
@@ -94,6 +95,7 @@ private fun KotlinTargetContainerWithJsPresetFunctions.jsInternal(
}
}
reportJsCompilerMode(compilerOrDefault)
return configureOrCreate(
targetName,
presets.getByName(
@@ -21,6 +21,7 @@ enum class StringMetrics(val type: StringOverridePolicy, val anonymization: Stri
// Build script
MPP_PLATFORMS(CONCAT, SAFE),
JS_COMPILER_MODE(CONCAT, SAFE),
// Component versions
LIBRARY_SPRING_VERSION(OVERRIDE_VERSION_IF_NOT_SET, COMPONENT_VERSION),