[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(
|
registerDependencyResolver(
|
||||||
resolver = IdeTransformedMetadataDependencyResolver,
|
resolver = IdeTransformedMetadataDependencyResolver,
|
||||||
constraint = !SourceSetConstraint.isLeaf,
|
constraint = !SourceSetConstraint.isLeaf and !SourceSetConstraint.isJvmAndAndroid,
|
||||||
phase = IdeMultiplatformImport.DependencyResolutionPhase.BinaryDependencyResolution,
|
phase = IdeMultiplatformImport.DependencyResolutionPhase.BinaryDependencyResolution,
|
||||||
level = IdeMultiplatformImport.DependencyResolutionLevel.Default
|
level = IdeMultiplatformImport.DependencyResolutionLevel.Default
|
||||||
)
|
)
|
||||||
@@ -150,7 +150,8 @@ internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMulti
|
|||||||
|
|
||||||
registerDependencyTransformer(
|
registerDependencyTransformer(
|
||||||
transformer = IdePlatformStdlibCommonDependencyFilter,
|
transformer = IdePlatformStdlibCommonDependencyFilter,
|
||||||
constraint = SourceSetConstraint.isSinglePlatformType and !SourceSetConstraint.isSharedNative,
|
constraint = SourceSetConstraint.isSinglePlatformType and !SourceSetConstraint.isSharedNative
|
||||||
|
or SourceSetConstraint.isJvmAndAndroid,
|
||||||
phase = IdeMultiplatformImport.DependencyTransformationPhase.DependencyFilteringPhase,
|
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.dependencyResolutionTests.mavenCentralCacheRedirector
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
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.assertMatches
|
||||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.binaryCoordinates
|
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.plugin.ide.dependencyResolvers.IdeTransformedMetadataDependencyResolver
|
||||||
import org.jetbrains.kotlin.gradle.util.applyMultiplatformPlugin
|
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
|
||||||
import org.jetbrains.kotlin.gradle.util.buildProject
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import org.jetbrains.kotlin.gradle.util.enableDefaultStdlibDependency
|
|
||||||
import org.jetbrains.kotlin.gradle.util.enableDependencyVerification
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class IdeTransformedMetadataDependencyResolverTest {
|
class IdeTransformedMetadataDependencyResolverTest {
|
||||||
@@ -68,4 +68,50 @@ class IdeTransformedMetadataDependencyResolverTest {
|
|||||||
binaryCoordinates("com.arkivanov.essenty:instance-keeper:0.4.2:commonMain")
|
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