Implemented collecting JS compilation mode
#KT-36410 Fixed
This commit is contained in:
@@ -100,7 +100,8 @@ class KotlinGradleFUSLogger : StartupActivity, DumbAware, Runnable {
|
|||||||
container.log(
|
container.log(
|
||||||
GradleStatisticsEvents.MPP,
|
GradleStatisticsEvents.MPP,
|
||||||
StringMetrics.MPP_PLATFORMS,
|
StringMetrics.MPP_PLATFORMS,
|
||||||
BooleanMetrics.ENABLED_HMPP
|
BooleanMetrics.ENABLED_HMPP,
|
||||||
|
StringMetrics.JS_COMPILER_MODE
|
||||||
)
|
)
|
||||||
|
|
||||||
container.log(
|
container.log(
|
||||||
|
|||||||
+24
-3
@@ -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.KotlinAndroidTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
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.calculateJsCompilerType
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
|
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
private const val KOTLIN_PROJECT_EXTENSION_NAME = "kotlin"
|
private const val KOTLIN_PROJECT_EXTENSION_NAME = "kotlin"
|
||||||
@@ -100,6 +102,16 @@ open class KotlinJsProjectExtension :
|
|||||||
internal var _target: KotlinJsTargetDsl? = null
|
internal var _target: KotlinJsTargetDsl? = null
|
||||||
private set
|
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()"))
|
@Deprecated("Use js() instead", ReplaceWith("js()"))
|
||||||
override var target: KotlinJsTargetDsl
|
override var target: KotlinJsTargetDsl
|
||||||
get() {
|
get() {
|
||||||
@@ -126,17 +138,26 @@ open class KotlinJsProjectExtension :
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_target == null) {
|
if (_target == null) {
|
||||||
val target: KotlinJsTargetDsl = when (compiler ?: defaultJsCompilerType) {
|
val compilerOrDefault = compiler ?: defaultJsCompilerType
|
||||||
|
reportJsCompilerMode(compilerOrDefault)
|
||||||
|
val target: KotlinJsTargetDsl = when (compilerOrDefault) {
|
||||||
KotlinJsCompilerType.LEGACY -> legacyPreset
|
KotlinJsCompilerType.LEGACY -> legacyPreset
|
||||||
.also { it.irPreset = null }
|
.also {
|
||||||
|
it.irPreset = null
|
||||||
|
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "legacy")
|
||||||
|
}
|
||||||
.createTarget("js")
|
.createTarget("js")
|
||||||
KotlinJsCompilerType.IR -> irPreset
|
KotlinJsCompilerType.IR -> irPreset
|
||||||
.also { it.mixedMode = false }
|
.also {
|
||||||
|
it.mixedMode = false
|
||||||
|
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "ir")
|
||||||
|
}
|
||||||
.createTarget("js")
|
.createTarget("js")
|
||||||
KotlinJsCompilerType.BOTH -> legacyPreset
|
KotlinJsCompilerType.BOTH -> legacyPreset
|
||||||
.also {
|
.also {
|
||||||
irPreset.mixedMode = true
|
irPreset.mixedMode = true
|
||||||
it.irPreset = irPreset
|
it.irPreset = irPreset
|
||||||
|
KotlinBuildStatsService.getInstance()?.report(StringMetrics.JS_COMPILER_MODE, "both")
|
||||||
}
|
}
|
||||||
.createTarget(
|
.createTarget(
|
||||||
lowerCamelCaseName(
|
lowerCamelCaseName(
|
||||||
|
|||||||
+2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.dsl
|
|||||||
|
|
||||||
import groovy.lang.Closure
|
import groovy.lang.Closure
|
||||||
import org.gradle.util.ConfigureUtil
|
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.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType
|
import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
||||||
@@ -94,6 +95,7 @@ private fun KotlinTargetContainerWithJsPresetFunctions.jsInternal(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reportJsCompilerMode(compilerOrDefault)
|
||||||
return configureOrCreate(
|
return configureOrCreate(
|
||||||
targetName,
|
targetName,
|
||||||
presets.getByName(
|
presets.getByName(
|
||||||
|
|||||||
+1
@@ -21,6 +21,7 @@ enum class StringMetrics(val type: StringOverridePolicy, val anonymization: Stri
|
|||||||
|
|
||||||
// Build script
|
// Build script
|
||||||
MPP_PLATFORMS(CONCAT, SAFE),
|
MPP_PLATFORMS(CONCAT, SAFE),
|
||||||
|
JS_COMPILER_MODE(CONCAT, SAFE),
|
||||||
|
|
||||||
// Component versions
|
// Component versions
|
||||||
LIBRARY_SPRING_VERSION(OVERRIDE_VERSION_IF_NOT_SET, COMPONENT_VERSION),
|
LIBRARY_SPRING_VERSION(OVERRIDE_VERSION_IF_NOT_SET, COMPONENT_VERSION),
|
||||||
|
|||||||
Reference in New Issue
Block a user