Skip to content

Commit f6f3aa0

Browse files
h0tk3yAbduqodiri Qurbonzoda
authored andcommitted
Fix native benchmark generator according to Kotlin update
1 parent e39b63c commit f6f3aa0

File tree

2 files changed

+42
-19
lines changed

2 files changed

+42
-19
lines changed

plugin/main/src/kotlinx/benchmark/gradle/NativeMultiplatformTasks.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ private fun Project.createNativeBenchmarkGenerateSourceTask(target: NativeBenchm
3838
this.nativeTarget = compilation.target.konanTarget.name
3939
title = target.name
4040
inputClassesDirs = compilation.output.allOutputs
41-
inputDependencies = compilation.compileDependencyFiles
41+
42+
val nativeKlibDependencies = project.files(project.provider {
43+
project.configurations.getByName(compilation.defaultSourceSet.implementationMetadataConfigurationName).files
44+
})
45+
inputDependencies = compilation.compileDependencyFiles + nativeKlibDependencies
46+
4247
outputResourcesDir = file("$benchmarkBuildDir/resources")
4348
outputSourcesDir = file("$benchmarkBuildDir/sources")
4449
}

plugin/main/src/kotlinx/benchmark/gradle/NativeSourceGeneratorTask.kt

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
package kotlinx.benchmark.gradle
22

3-
import org.gradle.api.*
4-
import org.gradle.api.file.*
3+
import org.gradle.api.DefaultTask
4+
import org.gradle.api.file.FileCollection
55
import org.gradle.api.tasks.*
6-
import org.gradle.workers.*
7-
import org.jetbrains.kotlin.config.*
8-
import org.jetbrains.kotlin.descriptors.*
9-
import org.jetbrains.kotlin.konan.util.*
10-
import org.jetbrains.kotlin.builtins.*
11-
import org.jetbrains.kotlin.serialization.konan.*
6+
import org.gradle.workers.IsolationMode
7+
import org.gradle.workers.WorkerExecutor
8+
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
9+
import org.jetbrains.kotlin.config.ApiVersion
10+
import org.jetbrains.kotlin.config.LanguageVersion
11+
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
12+
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
13+
import org.jetbrains.kotlin.incremental.components.LookupTracker
14+
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
15+
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
16+
import org.jetbrains.kotlin.library.*
17+
import org.jetbrains.kotlin.library.impl.createKotlinLibraryComponents
18+
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
19+
import org.jetbrains.kotlin.library.resolver.impl.libraryResolver
1220
import org.jetbrains.kotlin.storage.LockBasedStorageManager
1321
import org.jetbrains.kotlin.util.Logger
14-
import org.jetbrains.kotlin.library.*
15-
import org.jetbrains.kotlin.library.impl.*
16-
import org.jetbrains.kotlin.library.resolver.impl.*
17-
import java.io.*
18-
import javax.inject.*
22+
import java.io.File
23+
import javax.inject.Inject
1924

2025
@Suppress("UnstableApiUsage")
2126
@CacheableTask
@@ -106,19 +111,28 @@ class NativeSourceGeneratorWorker
106111
val factory = NativeFactories.DefaultDeserializedDescriptorFactory
107112

108113
val konanFile = org.jetbrains.kotlin.konan.file.File(lib.canonicalPath)
109-
val library = createKotlinLibrary(konanFile)
114+
val library = resolveSingleFileKlib(konanFile)
110115

111116
val versionSpec = LanguageVersionSettingsImpl(LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE)
112117
val storageManager = LockBasedStorageManager("Inspect")
113118

114-
val module = factory.createDescriptorOptionalBuiltIns(library, versionSpec, storageManager, Builtins, null)
119+
val module = factory.createDescriptorOptionalBuiltIns(
120+
library,
121+
versionSpec,
122+
storageManager,
123+
Builtins,
124+
null,
125+
LookupTracker.DO_NOTHING
126+
)
115127

116128
val dependencies = libraryResolver.resolveWithDependencies(library.unresolvedDependencies)
117129
val dependenciesResolved = NativeFactories.DefaultResolvedDescriptorsFactory.createResolved(
118130
dependencies,
119131
storageManager,
120132
Builtins,
121-
versionSpec
133+
versionSpec,
134+
null,
135+
emptyList()
122136
)
123137

124138
val dependenciesDescriptors = dependenciesResolved.resolvedDescriptors
@@ -134,8 +148,12 @@ class NativeSourceGeneratorWorker
134148
logger: Logger
135149
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
136150
emptyList(), klibFiles, knownAbiVersions, emptyList(),
137-
null, null, false, logger, emptyList()
151+
null, null, false, logger, listOf(KLIB_INTEROP_IR_PROVIDER_IDENTIFIER)
138152
) {
139-
override fun libraryBuilder(file: org.jetbrains.kotlin.konan.file.File, isDefault: Boolean) = createKotlinLibrary(file, isDefault)
153+
override fun libraryComponentBuilder(
154+
file: org.jetbrains.kotlin.konan.file.File,
155+
isDefault: Boolean
156+
): List<KotlinLibrary> =
157+
createKotlinLibraryComponents(file, isDefault)
140158
}
141159
}

0 commit comments

Comments
 (0)