[MPP] Don't apply common parts of IDE import resolution for JVM+Android
- Don't resolve common parts of MPP libraries - Filter out kotlin-stdlib-common KT-56453
This commit is contained in:
committed by
Space Team
parent
6e434748d1
commit
1b8c517e1e
+3
-2
@@ -67,7 +67,7 @@ internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMulti
|
||||
|
||||
registerDependencyResolver(
|
||||
resolver = IdeTransformedMetadataDependencyResolver,
|
||||
constraint = !SourceSetConstraint.isLeaf,
|
||||
constraint = !SourceSetConstraint.isLeaf and !SourceSetConstraint.isJvmAndAndroid,
|
||||
phase = IdeMultiplatformImport.DependencyResolutionPhase.BinaryDependencyResolution,
|
||||
level = IdeMultiplatformImport.DependencyResolutionLevel.Default
|
||||
)
|
||||
@@ -150,7 +150,8 @@ internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMulti
|
||||
|
||||
registerDependencyTransformer(
|
||||
transformer = IdePlatformStdlibCommonDependencyFilter,
|
||||
constraint = SourceSetConstraint.isSinglePlatformType and !SourceSetConstraint.isSharedNative,
|
||||
constraint = SourceSetConstraint.isSinglePlatformType and !SourceSetConstraint.isSharedNative
|
||||
or SourceSetConstraint.isJvmAndAndroid,
|
||||
phase = IdeMultiplatformImport.DependencyTransformationPhase.DependencyFilteringPhase,
|
||||
)
|
||||
|
||||
|
||||
+51
-5
@@ -9,13 +9,13 @@ package org.jetbrains.kotlin.gradle.dependencyResolutionTests.tcs
|
||||
|
||||
import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.assertMatches
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.binaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.IdeTransformedMetadataDependencyResolver
|
||||
import org.jetbrains.kotlin.gradle.util.applyMultiplatformPlugin
|
||||
import org.jetbrains.kotlin.gradle.util.buildProject
|
||||
import org.jetbrains.kotlin.gradle.util.enableDefaultStdlibDependency
|
||||
import org.jetbrains.kotlin.gradle.util.enableDependencyVerification
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.Test
|
||||
|
||||
class IdeTransformedMetadataDependencyResolverTest {
|
||||
@@ -68,4 +68,50 @@ class IdeTransformedMetadataDependencyResolverTest {
|
||||
binaryCoordinates("com.arkivanov.essenty:instance-keeper:0.4.2:commonMain")
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test OKIO in JVM + Android project`() {
|
||||
val project = buildProject {
|
||||
enableDependencyVerification(false)
|
||||
applyMultiplatformPlugin()
|
||||
repositories.mavenLocal()
|
||||
repositories.mavenCentralCacheRedirector()
|
||||
repositories.google()
|
||||
androidLibrary {
|
||||
compileSdkVersion = "android-31"
|
||||
}
|
||||
}
|
||||
val kotlin = project.multiplatformExtension
|
||||
|
||||
kotlin.jvm()
|
||||
kotlin.android()
|
||||
|
||||
val commonMain = kotlin.sourceSets.getByName("commonMain")
|
||||
val commonTest = kotlin.sourceSets.getByName("commonTest")
|
||||
|
||||
commonMain.dependencies {
|
||||
implementation("com.squareup.okio:okio:3.2.0")
|
||||
}
|
||||
|
||||
project.evaluate()
|
||||
|
||||
fun KotlinSourceSet.binaryDependencies() =
|
||||
project.kotlinIdeMultiplatformImport.resolveDependencies(this).filterIsInstance<IdeaKotlinBinaryDependency>()
|
||||
|
||||
commonMain.binaryDependencies().assertMatches(
|
||||
binaryCoordinates("com.squareup.okio:okio-jvm:3.2.0"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains:annotations:13.0"),
|
||||
)
|
||||
|
||||
commonTest.binaryDependencies().assertMatches(
|
||||
binaryCoordinates("com.squareup.okio:okio-jvm:3.2.0"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains.kotlin:kotlin-stdlib:1.6.20"),
|
||||
binaryCoordinates("org.jetbrains:annotations:13.0"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user