[Gradle] IdeMultiplatformImport: Support LibraryBinaryIdentifier
This commit is contained in:
committed by
Space Team
parent
46928eaa0b
commit
05b8a26a17
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.ide
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder
|
||||
@@ -162,7 +162,7 @@ interface IdeMultiplatformImport {
|
||||
@JvmStatic
|
||||
fun instance(project: Project): IdeMultiplatformImport {
|
||||
return project.extraProperties.getOrPut(IdeMultiplatformImport::class.java.name) {
|
||||
IdeMultiplatformImport(project.multiplatformExtension)
|
||||
IdeMultiplatformImport(project.kotlinExtension)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,13 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.ide
|
||||
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializer
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.kotlinDebugKey
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.SourceSetConstraint
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.*
|
||||
|
||||
fun IdeMultiplatformImport(extension: KotlinMultiplatformExtension): IdeMultiplatformImport {
|
||||
internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMultiplatformImport {
|
||||
return IdeMultiplatformImportImpl(extension).apply {
|
||||
|
||||
registerDependencyResolver(
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin.ide
|
||||
|
||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.proto.tcs.toByteArray
|
||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinSerializationContext
|
||||
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.tooling.core.Extras
|
||||
|
||||
|
||||
internal class IdeMultiplatformImportImpl(
|
||||
private val extension: KotlinMultiplatformExtension
|
||||
private val extension: KotlinProjectExtension
|
||||
) : IdeMultiplatformImport {
|
||||
|
||||
override fun resolveDependencies(sourceSetName: String): Set<IdeaKotlinDependency> {
|
||||
|
||||
+14
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
|
||||
|
||||
import org.gradle.api.artifacts.ArtifactView
|
||||
import org.gradle.api.artifacts.component.LibraryBinaryIdentifier
|
||||
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
|
||||
import org.gradle.api.artifacts.component.ModuleComponentSelector
|
||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
||||
@@ -96,6 +97,19 @@ internal class IdePlatformDependencyResolver(
|
||||
)
|
||||
}
|
||||
|
||||
is LibraryBinaryIdentifier -> {
|
||||
IdeaKotlinResolvedBinaryDependency(
|
||||
binaryType = binaryType,
|
||||
coordinates = IdeaKotlinBinaryCoordinates(
|
||||
group = componentId.projectPath + "(${componentId.variant})",
|
||||
module = componentId.libraryName,
|
||||
version = null, sourceSetName = null
|
||||
),
|
||||
binaryFile = artifact.file
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
is OpaqueComponentArtifactIdentifier -> {
|
||||
/* Such dependencies *would* require implementing a resolver */
|
||||
null
|
||||
|
||||
Reference in New Issue
Block a user