[Gradle] Implement IdeMultiplatformImportStatistics as project level service
KT-55289
This commit is contained in:
committed by
Space Team
parent
636d4a74a5
commit
59ddd381aa
+2
-3
@@ -21,8 +21,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.measureTimeMillisWithResult
|
|||||||
|
|
||||||
|
|
||||||
internal class IdeMultiplatformImportImpl(
|
internal class IdeMultiplatformImportImpl(
|
||||||
private val extension: KotlinProjectExtension,
|
private val extension: KotlinProjectExtension
|
||||||
val statistics: IdeMultiplatformImportStatistics = IdeMultiplatformImportStatistics()
|
|
||||||
) : IdeMultiplatformImport {
|
) : IdeMultiplatformImport {
|
||||||
|
|
||||||
override fun resolveDependencies(sourceSetName: String): Set<IdeaKotlinDependency> {
|
override fun resolveDependencies(sourceSetName: String): Set<IdeaKotlinDependency> {
|
||||||
@@ -61,7 +60,7 @@ internal class IdeMultiplatformImportImpl(
|
|||||||
level: DependencyResolutionLevel
|
level: DependencyResolutionLevel
|
||||||
) {
|
) {
|
||||||
registeredDependencyResolvers.add(
|
registeredDependencyResolvers.add(
|
||||||
RegisteredDependencyResolver(statistics, resolver, constraint, phase, level)
|
RegisteredDependencyResolver(extension.project.kotlinIdeMultiplatformImportStatistics, resolver, constraint, phase, level)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (resolver is IdeDependencyResolver.WithBuildDependencies) {
|
if (resolver is IdeDependencyResolver.WithBuildDependencies) {
|
||||||
|
|||||||
+9
@@ -5,6 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.ide
|
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.
|
* Simple implementation to track dependency resolution bottlenecks.
|
||||||
* This will later be replaced by properly tracing ide import.
|
* This will later be replaced by properly tracing ide import.
|
||||||
|
|||||||
+1
-1
@@ -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")
|
val timeStatisticsFile = outputDirectory.resolve("times.txt")
|
||||||
timeStatisticsFile.writeText(buildString {
|
timeStatisticsFile.writeText(buildString {
|
||||||
statistics.getExecutionTimes().forEach { (clazz, time) ->
|
statistics.getExecutionTimes().forEach { (clazz, time) ->
|
||||||
|
|||||||
Reference in New Issue
Block a user