[Gradle] Implement MultiplatformBuildStatsReportSetupAction

KT-61634
This commit is contained in:
Sebastian Sellmair
2023-10-17 10:03:37 +02:00
committed by Space Team
parent 070b80a05f
commit 382482a26c
3 changed files with 22 additions and 13 deletions
@@ -35,7 +35,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
setupDefaultPresets(project)
customizeKotlinDependencies(project)
configureSourceSets(project)
setupTargetsBuildStatsReport(project)
}
fun setupDefaultPresets(project: Project) {
@@ -80,18 +79,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
}
}
private fun setupTargetsBuildStatsReport(project: Project) {
project.multiplatformExtension.targets.all { target ->
/* Report the platform to tbe build stats service */
val targetName = if (target is KotlinNativeTarget)
target.konanTarget.name
else
target.platformType.name
KotlinBuildStatsService.getInstance()?.report(StringMetrics.MPP_PLATFORMS, targetName)
}
}
companion object {
const val METADATA_TARGET_NAME = "metadata"
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.SyncLanguageSettingsWithKotlinExte
import org.jetbrains.kotlin.gradle.plugin.mpp.UserDefinedAttributesSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction
import org.jetbrains.kotlin.gradle.plugin.sources.LanguageSettingsSetupAction
import org.jetbrains.kotlin.gradle.plugin.statistics.MultiplatformBuildStatsReportSetupAction
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubpluginSetupAction
import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction
import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetSetupAction
@@ -62,6 +63,7 @@ internal fun Project.registerKotlinPluginExtensions() {
}
if (isMultiplatform) {
register(project, MultiplatformBuildStatsReportSetupAction)
register(project, KotlinMetadataTargetSetupAction)
register(project, KotlinArtifactsExtensionSetupAction)
register(project, MultiplatformPublishingSetupAction)
@@ -0,0 +1,20 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.plugin.statistics
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinProjectSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
internal val MultiplatformBuildStatsReportSetupAction = KotlinProjectSetupAction {
multiplatformExtension.targets.all { target ->
/* Report the platform to tbe build stats service */
val targetName = if (target is KotlinNativeTarget) target.konanTarget.name
else target.platformType.name
KotlinBuildStatsService.getInstance()?.report(StringMetrics.MPP_PLATFORMS, targetName)
}
}