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-") }
}
}