diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 6a2ad4aae9a..a353491e5f8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.util.* import org.jetbrains.kotlin.test.util.KtTestUtil import org.junit.Assume -import org.junit.Ignore import org.junit.Test import java.io.File import java.util.zip.ZipFile @@ -793,7 +792,6 @@ open class KotlinAndroid71GradleIT : KotlinAndroid70GradleIT() { } @Test - @Ignore("Due to KT-51907, remove after fixing stdlib auto-configuration") fun `test associate compilation dependencies are passed correctly to android test compilations`() { with(Project("kt-49877")) { build("allTests") { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt index 01259a68426..73201b0798c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt @@ -201,14 +201,15 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() { buildGradle.appendText( """ - dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } + dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib") } """.trimIndent() ) // Check that the explicit stdlib overrides the plugin's choice of stdlib-jdk8 checkTaskCompileClasspath( "compileKotlin", - listOf("kotlin-stdlib-jdk8-${defaultBuildOptions.kotlinVersion}") + listOf("kotlin-stdlib-${defaultBuildOptions.kotlinVersion}"), + listOf("kotlin-stdlib-jdk8") ) } } @@ -545,7 +546,7 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() { checkTaskCompileClasspath( "compileTestKotlin", - listOf("kotlin-stdlib-jdk8-", "kotlin-reflect-", "kotlin-test-").map { it + customVersion } + listOf("kotlin-stdlib-", "kotlin-reflect-", "kotlin-test-").map { it + customVersion } ) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PublishingIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PublishingIT.kt index 3994e34729f..67d61baee6a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PublishingIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PublishingIT.kt @@ -106,7 +106,7 @@ class PublishingIT : KGPBaseTest() { ) { assertTasksExecuted(":compileKotlin", ":compileTestKotlin") val pomLines = projectPath.resolve("build/publications/myLibrary/pom-default.xml").readLines() - val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1 + val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib-jdk8" in it } + 1 val versionLine = pomLines[stdlibVersionLineNumber] assertTrue { "${buildOptions.kotlinVersion}" in versionLine } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt index b346dcd8fe7..160f3b1f5f0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/stdlibDependencyManagement.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.gradle.plugin.sources.android.AndroidVariantType import org.jetbrains.kotlin.gradle.plugin.sources.android.androidSourceSetInfoOrNull import org.jetbrains.kotlin.gradle.plugin.sources.dependsOnClosure import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope -import org.jetbrains.kotlin.gradle.targets.js.npm.SemVer internal fun Project.configureStdlibDefaultDependency( topLevelExtension: KotlinTopLevelExtension, @@ -66,7 +65,7 @@ private fun addStdlibToKpmProject( val dependencyHandler = project.dependencies val stdlibModule = when (variant.platformType) { KotlinPlatformType.common -> error("variants are not expected to be common") - KotlinPlatformType.jvm -> chooseStdlibJvmDependency(coreLibrariesVersion) + KotlinPlatformType.jvm -> "kotlin-stdlib-jdk8" KotlinPlatformType.js -> "kotlin-stdlib-js" KotlinPlatformType.wasm -> "kotlin-stdlib-wasm" KotlinPlatformType.androidJvm -> null // TODO: expect support on the AGP side? @@ -106,10 +105,11 @@ private fun KotlinTarget.addStdlibDependency( val stdlibModule = compilation .platformType - .stdlibPlatformType(coreLibrariesVersion, this, kotlinSourceSet) + .stdlibPlatformType( this, kotlinSourceSet) ?: return@withDependencies // Check if stdlib module is added to SourceSets hierarchy + @Suppress("DEPRECATION") if ( isStdlibAddedByUser( configurations, @@ -147,16 +147,15 @@ private fun isStdlibAddedByUser( } private fun KotlinPlatformType.stdlibPlatformType( - coreLibrariesVersion: Provider, kotlinTarget: KotlinTarget, kotlinSourceSet: KotlinSourceSet ): String? = when (this) { - KotlinPlatformType.jvm -> chooseStdlibJvmDependency(coreLibrariesVersion) + KotlinPlatformType.jvm -> "kotlin-stdlib-jdk8" KotlinPlatformType.androidJvm -> { if (kotlinTarget is KotlinAndroidTarget && kotlinSourceSet.androidSourceSetInfoOrNull?.androidSourceSetName == AndroidBaseSourceSetName.Main.name ) { - chooseStdlibJvmDependency(coreLibrariesVersion) + "kotlin-stdlib-jdk8" } else { null } @@ -169,19 +168,6 @@ private fun KotlinPlatformType.stdlibPlatformType( "kotlin-stdlib-common" } -private val kotlin180Version = SemVer(1.toBigInteger(), 8.toBigInteger(), 0.toBigInteger()) - -private fun chooseStdlibJvmDependency( - coreLibrariesVersion: Provider -): String { - // Current 'SemVer.satisfies' release always returns `false` for any "-SNAPSHOT" version. - return if (SemVer.from(coreLibrariesVersion.get()) < kotlin180Version) { - "kotlin-stdlib-jdk8" - } else { - "kotlin-stdlib" - } -} - private val androidTestVariants = setOf(AndroidVariantType.UnitTest, AndroidVariantType.InstrumentedTest) private fun KotlinSourceSet.isRelatedToAndroidTestSourceSet(): Boolean { diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt index 6836eecf10b..b427188285f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt @@ -149,6 +149,8 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen module.assertContainsFragment("jvm").assertResolvedBinaryDependencies( CLASSPATH_BINARY_TYPE, "org.jetbrains.kotlin:kotlin-stdlib:${project.getKotlinPluginVersion()}", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.getKotlinPluginVersion()}", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.getKotlinPluginVersion()}", Regex("""org\.jetbrains:annotations:.*"""), )