diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 4c93c49a551..a13c1966c95 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -61,6 +61,8 @@ + + diff --git a/libraries/tools/kotlin-dist-for-jps-meta/pom.xml b/libraries/tools/kotlin-dist-for-jps-meta/pom.xml index 90eed1251a0..ac4e9dfeaf2 100644 --- a/libraries/tools/kotlin-dist-for-jps-meta/pom.xml +++ b/libraries/tools/kotlin-dist-for-jps-meta/pom.xml @@ -125,7 +125,7 @@ ${project.groupId} - kotlinx-serialization-compiler-plugin + kotlin-serialization-compiler-plugin ${project.version} diff --git a/libraries/tools/kotlin-maven-serialization/pom.xml b/libraries/tools/kotlin-maven-serialization/pom.xml index 5223e7e0282..69ad418870d 100755 --- a/libraries/tools/kotlin-maven-serialization/pom.xml +++ b/libraries/tools/kotlin-maven-serialization/pom.xml @@ -41,7 +41,7 @@ org.jetbrains.kotlin - kotlinx-serialization-compiler-plugin + kotlin-serialization-compiler-plugin ${project.version} provided diff --git a/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt b/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt index 575b49fa0b3..e93d06d00a8 100644 --- a/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt +++ b/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt @@ -24,8 +24,8 @@ class SerializationGradleSubplugin : companion object { const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlin" - const val SERIALIZATION_ARTIFACT_NAME = "kotlinx-serialization-compiler-plugin-embeddable" - const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlinx-serialization-compiler-plugin" + const val SERIALIZATION_ARTIFACT_NAME = "kotlin-serialization-compiler-plugin-embeddable" + const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlin-serialization-compiler-plugin" } override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true diff --git a/plugins/kotlinx-serialization/build.gradle.kts b/plugins/kotlinx-serialization/build.gradle.kts index 1843e74589c..1735428bf8d 100644 --- a/plugins/kotlinx-serialization/build.gradle.kts +++ b/plugins/kotlinx-serialization/build.gradle.kts @@ -72,14 +72,37 @@ sourceSets { optInToExperimentalCompilerApi() -publish() +publish { + artifactId = artifactId.replace("kotlinx-", "kotlin-") +} -runtimeJar() +val runtimeJar = runtimeJar { + archiveBaseName.set("kotlin-serialization-compiler-plugin") +} sourcesJar() javadocJar() testsJar() useD8Plugin() +val distCompat by configurations.creating { + isCanBeResolved = false + isCanBeConsumed = true +} + +val compatJar = tasks.register("compatJar") { + from(runtimeJar) + into(layout.buildDirectory.dir("libsCompat")) + rename { + it.replace("kotlin-", "kotlinx-") + } +} + +artifacts { + add(distCompat.name, compatJar) { + builtBy(runtimeJar, compatJar) + } +} + projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) { workingDir = rootDir useJUnitPlatform() diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts index 300a251ceb7..5615e8cf4e9 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts +++ b/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts @@ -7,7 +7,7 @@ dependencies { } publish { - artifactId = artifactId.replace(".", "-") + artifactId = artifactId.replace(".", "-").replace("kotlinx-", "kotlin-") } runtimeJar(rewriteDefaultJarDepsToShadedCompiler()) diff --git a/prepare/compiler/build.gradle.kts b/prepare/compiler/build.gradle.kts index 9052ff05bcb..60ed7ec3f10 100644 --- a/prepare/compiler/build.gradle.kts +++ b/prepare/compiler/build.gradle.kts @@ -51,8 +51,17 @@ val libraries by configurations.creating { val librariesStripVersion by configurations.creating // Compiler plugins should be copied without `kotlin-` prefix -val compilerPlugins by configurations.creating { +val compilerPlugins by configurations.creating { exclude("org.jetbrains.kotlin", "kotlin-stdlib-common") + + isCanBeConsumed = false + isCanBeResolved = true +} +val compilerPluginsCompat by configurations.creating { + exclude("org.jetbrains.kotlin", "kotlin-stdlib-common") + + isCanBeConsumed = false + isCanBeResolved = true } val sources by configurations.creating { @@ -119,6 +128,9 @@ val distCompilerPluginProjects = listOf( ":kotlin-lombok-compiler-plugin", ":kotlin-assignment-compiler-plugin" ) +val distCompilerPluginProjectsCompat = listOf( + ":kotlinx-serialization-compiler-plugin", +) val distSourcesProjects = listOfNotNull( ":kotlin-annotations-jvm", @@ -168,6 +180,16 @@ dependencies { distCompilerPluginProjects.forEach { compilerPlugins(project(it)) { isTransitive = false } } + distCompilerPluginProjectsCompat.forEach { + compilerPluginsCompat( + project( + mapOf( + "path" to it, + "configuration" to "distCompat" + ) + ) + ) + } distSourcesProjects.forEach { sources(project(it, configuration = "sources")) @@ -365,6 +387,7 @@ val distKotlinc = distTask("distKotlinc") { val librariesStripVersionFiles = files(librariesStripVersion) val sourcesFiles = files(sources) val compilerPluginsFiles = files(compilerPlugins) + val compilerPluginsCompatFiles = files(compilerPluginsCompat) into("lib") { from(jarFiles) { rename { "$compilerBaseName.jar" } } from(librariesFiles) @@ -375,6 +398,17 @@ val distKotlinc = distTask("distKotlinc") { } from(sourcesFiles) from(compilerPluginsFiles) { + rename { + // We want to migrate all compiler plugin in 'dist' to have 'kotlin-' prefix + // 'kotlin-serialization-compiler-plugin' is a new jar and should have such prefix from the start + if (!it.startsWith("kotlin-serialization")) { + it.removePrefix("kotlin-") + } else { + it + } + } + } + from(compilerPluginsCompatFiles) { rename { it.removePrefix("kotlin-") } } }