[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.gradle.api.Project
|
||||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
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.dsl.multiplatformExtensionOrNull
|
||||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
||||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder
|
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder
|
||||||
@@ -162,7 +162,7 @@ interface IdeMultiplatformImport {
|
|||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun instance(project: Project): IdeMultiplatformImport {
|
fun instance(project: Project): IdeMultiplatformImport {
|
||||||
return project.extraProperties.getOrPut(IdeMultiplatformImport::class.java.name) {
|
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
|
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.idea.serialize.IdeaKotlinExtrasSerializer
|
||||||
import org.jetbrains.kotlin.gradle.kpm.idea.kotlinDebugKey
|
import org.jetbrains.kotlin.gradle.kpm.idea.kotlinDebugKey
|
||||||
import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.SourceSetConstraint
|
import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.SourceSetConstraint
|
||||||
import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.*
|
import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.*
|
||||||
|
|
||||||
fun IdeMultiplatformImport(extension: KotlinMultiplatformExtension): IdeMultiplatformImport {
|
internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMultiplatformImport {
|
||||||
return IdeMultiplatformImportImpl(extension).apply {
|
return IdeMultiplatformImportImpl(extension).apply {
|
||||||
|
|
||||||
registerDependencyResolver(
|
registerDependencyResolver(
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.ide
|
package org.jetbrains.kotlin.gradle.plugin.ide
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
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.proto.tcs.toByteArray
|
||||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension
|
||||||
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinSerializationContext
|
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinSerializationContext
|
||||||
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.tooling.core.Extras
|
|||||||
|
|
||||||
|
|
||||||
internal class IdeMultiplatformImportImpl(
|
internal class IdeMultiplatformImportImpl(
|
||||||
private val extension: KotlinMultiplatformExtension
|
private val extension: KotlinProjectExtension
|
||||||
) : IdeMultiplatformImport {
|
) : IdeMultiplatformImport {
|
||||||
|
|
||||||
override fun resolveDependencies(sourceSetName: String): Set<IdeaKotlinDependency> {
|
override fun resolveDependencies(sourceSetName: String): Set<IdeaKotlinDependency> {
|
||||||
|
|||||||
+14
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
|
package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
|
||||||
|
|
||||||
import org.gradle.api.artifacts.ArtifactView
|
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.ModuleComponentIdentifier
|
||||||
import org.gradle.api.artifacts.component.ModuleComponentSelector
|
import org.gradle.api.artifacts.component.ModuleComponentSelector
|
||||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
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 -> {
|
is OpaqueComponentArtifactIdentifier -> {
|
||||||
/* Such dependencies *would* require implementing a resolver */
|
/* Such dependencies *would* require implementing a resolver */
|
||||||
null
|
null
|
||||||
|
|||||||
Reference in New Issue
Block a user