diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt index d2f324bcbab..975fa354840 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt @@ -193,7 +193,10 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) if (mppModel != null) { mppModel.targets.filterNot { it.name == "metadata" }.forEach { target -> - KotlinStatisticsTrigger.trigger(KotlinTargetTrigger::class.java, "MPP.${target.platform.id}") + KotlinStatisticsTrigger.trigger( + KotlinTargetTrigger::class.java, + "MPP.${target.platform.id + (target.presetName?.let { ".$it"} ?: "")}" + ) } return super.populateModuleDependencies(gradleModule, ideModule, ideProject) } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt index 6914ef70903..9113bd1b3ea 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt @@ -84,6 +84,7 @@ interface KotlinTargetJar : Serializable { interface KotlinTarget : Serializable { val name: String + val presetName: String? val disambiguationClassifier: String? val platform: KotlinPlatform val compilations: Collection diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt index 3dfa3a516e4..b184952f269 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt @@ -175,6 +175,15 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { val platformId = (getPlatformType.invoke(gradleTarget) as? Named)?.name ?: return null val platform = KotlinPlatform.byId(platformId) ?: return null val disambiguationClassifier = getDisambiguationClassifier(gradleTarget) as? String + val getPreset = targetClass.getMethodOrNull("getPreset") + var targetPresetName: String? = null + try { + val targetPreset = getPreset?.invoke(gradleTarget) + val getPresetName = targetPreset?.javaClass?.getMethodOrNull("getName") + targetPresetName = getPresetName?.invoke(targetPreset) as? String + } catch (e: Throwable) { + targetPresetName = "${e::class.java.name}:${e.message}" + } @Suppress("UNCHECKED_CAST") val gradleCompilations = (getCompilations.invoke(gradleTarget) as? NamedDomainObjectContainer)?.asMap?.values ?: emptyList() @@ -182,7 +191,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project) } val jar = buildTargetJar(gradleTarget, project) - val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar) + val target = KotlinTargetImpl(gradleTarget.name, targetPresetName, disambiguationClassifier, platform, compilations, jar) compilations.forEach { it.target = target } return target } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.173 b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.173 index 17c23527d87..39db8ee8983 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.173 +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.173 @@ -181,7 +181,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project) } val jar = buildTargetJar(gradleTarget, project) - val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar) + val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar) compilations.forEach { it.target = target } return target } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.181 b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.181 index db5e0282f57..909e1d9fb02 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.181 +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.181 @@ -182,7 +182,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project) } val jar = buildTargetJar(gradleTarget, project) - val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar) + val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar) compilations.forEach { it.target = target } return target } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.as31 b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.as31 index 17c23527d87..39db8ee8983 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.as31 +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt.as31 @@ -181,7 +181,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project) } val jar = buildTargetJar(gradleTarget, project) - val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar) + val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar) compilations.forEach { it.target = target } return target } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt index 94240eece31..6b6b13df27d 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt @@ -72,6 +72,7 @@ class KotlinTargetJarImpl( class KotlinTargetImpl( override val name: String, + override val presetName: String?, override val disambiguationClassifier: String?, override val platform: KotlinPlatform, override val compilations: Collection,