diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt index 21b5fd63602..b06dca05f6b 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt @@ -471,7 +471,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() { val substitutedDependencies: List ) { val konanTarget: String? - get() = compilation.konanTarget + get() = compilation.nativeExtensions.konanTarget val dependencyNames: Map by lazy { substitutedDependencies.associateBy { it.name.removeSuffixIfPresent(" [$konanTarget]") } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt index 4df81f053e9..0bc865f0001 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModel.kt @@ -91,6 +91,10 @@ interface KotlinCompilationArguments : Serializable { val currentArguments: Array } +interface KotlinNativeCompilationExtensions : Serializable { + val konanTarget: String? +} + interface KotlinCompilation : KotlinModule { val sourceSets: Collection val output: KotlinCompilationOutput @@ -99,8 +103,7 @@ interface KotlinCompilation : KotlinModule { val disambiguationClassifier: String? val platform: KotlinPlatform val kotlinTaskProperties: KotlinTaskProperties - - val konanTarget: String? + val nativeExtensions: KotlinNativeCompilationExtensions companion object { const val MAIN_COMPILATION_NAME = "main" diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt index e0325028bce..2e5e7f729ce 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelBuilder.kt @@ -432,6 +432,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { it.invoke(konanTarget) as? String } } + val nativeExtensions = KotlinNativeCompilationExtensionsImpl(konanTarget) return KotlinCompilationImpl( gradleCompilation.name, @@ -441,7 +442,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService { arguments, dependencyClasspath.toTypedArray(), kotlinTaskProperties, - konanTarget + nativeExtensions ) } diff --git a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt index 3536b028cb0..cff91d25c9f 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinMPPGradleModelImpl.kt @@ -82,6 +82,12 @@ data class KotlinCompilationArgumentsImpl( ) } +data class KotlinNativeCompilationExtensionsImpl( + override val konanTarget: String? = null +) : KotlinNativeCompilationExtensions { + constructor(extensions: KotlinNativeCompilationExtensions) : this(extensions.konanTarget) +} + data class KotlinCompilationImpl( override val name: String, override val sourceSets: Collection, @@ -90,7 +96,7 @@ data class KotlinCompilationImpl( override val arguments: KotlinCompilationArguments, override val dependencyClasspath: Array, override val kotlinTaskProperties: KotlinTaskProperties, - override val konanTarget: String? = null + override val nativeExtensions: KotlinNativeCompilationExtensions ) : KotlinCompilation { // create deep copy @@ -106,7 +112,7 @@ data class KotlinCompilationImpl( KotlinCompilationArgumentsImpl(kotlinCompilation.arguments), kotlinCompilation.dependencyClasspath, KotlinTaskPropertiesImpl(kotlinCompilation.kotlinTaskProperties), - kotlinCompilation.konanTarget + KotlinNativeCompilationExtensionsImpl(kotlinCompilation.nativeExtensions) ) { disambiguationClassifier = kotlinCompilation.disambiguationClassifier platform = kotlinCompilation.platform