IDE: Add native extensions to KotlinCompilation

This commit is contained in:
Ilya Matveev
2019-09-27 13:35:46 +07:00
parent 95cbb4e8b4
commit 3da3e1cae9
4 changed files with 16 additions and 6 deletions
@@ -471,7 +471,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
val substitutedDependencies: List<ExternalDependency>
) {
val konanTarget: String?
get() = compilation.konanTarget
get() = compilation.nativeExtensions.konanTarget
val dependencyNames: Map<String, ExternalDependency> by lazy {
substitutedDependencies.associateBy { it.name.removeSuffixIfPresent(" [$konanTarget]") }
@@ -91,6 +91,10 @@ interface KotlinCompilationArguments : Serializable {
val currentArguments: Array<String>
}
interface KotlinNativeCompilationExtensions : Serializable {
val konanTarget: String?
}
interface KotlinCompilation : KotlinModule {
val sourceSets: Collection<KotlinSourceSet>
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"
@@ -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
)
}
@@ -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<KotlinSourceSet>,
@@ -90,7 +96,7 @@ data class KotlinCompilationImpl(
override val arguments: KotlinCompilationArguments,
override val dependencyClasspath: Array<String>,
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