diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportImpl.kt index bac88ec7d3c..3d202d4038c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportImpl.kt @@ -21,8 +21,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.measureTimeMillisWithResult internal class IdeMultiplatformImportImpl( - private val extension: KotlinProjectExtension, - val statistics: IdeMultiplatformImportStatistics = IdeMultiplatformImportStatistics() + private val extension: KotlinProjectExtension ) : IdeMultiplatformImport { override fun resolveDependencies(sourceSetName: String): Set { @@ -61,7 +60,7 @@ internal class IdeMultiplatformImportImpl( level: DependencyResolutionLevel ) { registeredDependencyResolvers.add( - RegisteredDependencyResolver(statistics, resolver, constraint, phase, level) + RegisteredDependencyResolver(extension.project.kotlinIdeMultiplatformImportStatistics, resolver, constraint, phase, level) ) if (resolver is IdeDependencyResolver.WithBuildDependencies) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportStatistics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportStatistics.kt index ddb0c32526e..9551f637260 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportStatistics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportStatistics.kt @@ -5,6 +5,15 @@ package org.jetbrains.kotlin.gradle.plugin.ide +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.utils.getOrPut + + +internal val Project.kotlinIdeMultiplatformImportStatistics: IdeMultiplatformImportStatistics + get() = extensions.extraProperties.getOrPut(IdeMultiplatformImportStatistics::class.java.name) { + IdeMultiplatformImportStatistics() + } + /** * Simple implementation to track dependency resolution bottlenecks. * This will later be replaced by properly tracing ide import. diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt index 7766590b8fb..253e7ea3c64 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt @@ -59,7 +59,7 @@ internal open class IdeResolveDependenciesTask : DefaultTask() { } } - (project.kotlinIdeMultiplatformImport as? IdeMultiplatformImportImpl)?.statistics?.let { statistics -> + project.kotlinIdeMultiplatformImportStatistics.let { statistics -> val timeStatisticsFile = outputDirectory.resolve("times.txt") timeStatisticsFile.writeText(buildString { statistics.getExecutionTimes().forEach { (clazz, time) ->