[stdlib-mpp] Switch kotlin-stdlib project to multiplatform

#KT-56106
This commit is contained in:
Ilya Gorbunov
2023-03-24 09:51:12 +01:00
committed by Space Team
parent fac620df0b
commit 34720f27d4
9 changed files with 63 additions and 10 deletions
+3 -2
View File
@@ -357,8 +357,9 @@ val coreLibProjects by extra {
)
}
val mppProjects by extra {
listOf(
":kotlin-stdlib-mpp",
listOfNotNull(
":kotlin-stdlib-mpp".takeUnless { kotlinBuildProperties.kotlinStdlibMpp },
":kotlin-stdlib".takeIf { kotlinBuildProperties.kotlinStdlibMpp },
)
}
+1
View File
@@ -56,6 +56,7 @@ kotlin.options.suppressFreeCompilerArgsModificationWarning=true
# TODO: add this flag in a granular way to the modules that don't need stdlib?
kotlin.stdlib.default.dependency=false
kotlin.js.stdlib.dom.api.included=false
kotlin.stdlib.mpp=true
# Suppress warnings about using deprecated and unstable plugins in kotlin-stdlib
kotlin.internal.suppressGradlePluginErrors=PreHMPPFlagsError
+30
View File
@@ -4101,12 +4101,30 @@
<sha256 value="4395647b1961d9fb730a34e8dbe56c293157bc0759004cca63d9b5ee6653e5c7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.3.70">
<artifact name="kotlin-stdlib-common-1.3.70.jar">
<md5 value="53323436def4746efd414192e1add1bc" origin="Generated by Gradle"/>
<sha256 value="6e2377cfc4898f2fb24429951b133b570b250e3f860a8458b2a1f8a63cf53a50" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.4.10">
<artifact name="kotlin-stdlib-common-1.4.10.jar">
<md5 value="3063be8b21930539e87a1b70819c46fe" origin="Generated by Gradle"/>
<sha256 value="4681f2d436a68c7523595d84ed5758e1382f9da0f67c91e6a848690d711274fe" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.4.30">
<artifact name="kotlin-stdlib-common-1.4.30.jar">
<md5 value="37a1c4363f212e1b123b62167b538a5a" origin="Generated by Gradle"/>
<sha256 value="32010683330a6f31b8d309f10433acaa109b61f2df3d252dae7dade9730074c2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.5.0">
<artifact name="kotlin-stdlib-common-1.5.0.jar">
<md5 value="df18df1862c2fd6b5c185c8eeb493dc1" origin="Generated by Gradle"/>
<sha256 value="c14ce6720a487b5e238f1b0c30ac3ad73e45b90a40731ca0b1cfddec1a37682f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.5.31">
<artifact name="kotlin-stdlib-common-1.5.31.jar">
<md5 value="65557bf9158d26bb450352376584b0b8" origin="Generated by Gradle"/>
@@ -4125,6 +4143,18 @@
<sha256 value="280ddd0994e4560c9a49ee81c1b047ddc2b8f2176159475066025b474b37effd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.6.21">
<artifact name="kotlin-stdlib-common-1.6.21.jar">
<md5 value="ef059f351dbf296d43895872bb5a335f" origin="Generated by Gradle"/>
<sha256 value="183bec59cd9f3a14957b190e8c879cf1194bd1f106b0a7b6e1cbb8790d242363" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.7.20">
<artifact name="kotlin-stdlib-common-1.7.20.jar">
<md5 value="9e99345113604b0b2282773bc52f574a" origin="Generated by Gradle"/>
<sha256 value="e0e91962bc0007338bf5b1739f62927ac32d14ba3d827fa608ab4e5351729d5d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.10">
<artifact name="kotlin-stdlib-common-1.8.10.jar">
<md5 value="89e214d219dc3e3acf6e5e2d860ff638" origin="Generated by Gradle"/>
+10 -1
View File
@@ -980,4 +980,13 @@ private class ComponentWithExternalVariants(
override fun getVariants(): Set<SoftwareComponent> = externalComponents
}
// endregion
// endregion
// for legacy intra-project dependencies
for (name in listOf("sources", "distSources")) {
val sourcesConfiguration = configurations.getOrCreate(name).apply {
isCanBeResolved = false
isCanBeConsumed = true
}
artifacts.add(sourcesConfiguration.name, tasks["jvmSourcesJar"])
}
+8
View File
@@ -376,3 +376,11 @@ tasks.register("runMocha", NodeTask) {
tasks.withType(org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile) {
kotlinOptions.freeCompilerArgs += "-Xforce-deprecated-legacy-compiler-usage"
}
if (BuildPropertiesExtKt.getKotlinStdlibMpp(project.kotlinBuildProperties)) {
afterEvaluate {
tasks.withType(AbstractPublishToMaven).configureEach {
enabled = false
}
}
}
@@ -32,7 +32,7 @@ sourceSets {
}
val copySources by task<Sync> {
val stdlibProjectDir = project(":kotlin-stdlib").projectDir
val stdlibProjectDir = file("$rootDir/libraries/stdlib/jvm")
from(stdlibProjectDir.resolve("runtime"))
.include("kotlin/TypeAliases.kt",
@@ -59,3 +59,6 @@ val KotlinBuildProperties.useFirWithLightTree: Boolean
val KotlinBuildProperties.useFirTightIC: Boolean
get() = getBoolean("kotlin.build.useFirIC")
val KotlinBuildProperties.kotlinStdlibMpp: Boolean
get() = getBoolean("kotlin.stdlib.mpp")
@@ -86,9 +86,9 @@ fun kotlinDep(artifactBaseName: String, version: String, classifier: String? = n
@JvmOverloads
fun Project.kotlinStdlib(suffix: String? = null, classifier: String? = null): Any {
return if (kotlinBuildProperties.useBootstrapStdlib)
kotlinDep(listOfNotNull("stdlib", suffix).joinToString("-"), bootstrapKotlinVersion, classifier)
kotlinDep(listOfNotNull("stdlib", suffix.takeUnless { kotlinBuildProperties.kotlinStdlibMpp && it == "mpp" }).joinToString("-"), bootstrapKotlinVersion, classifier)
else
dependencies.project(listOfNotNull(":kotlin-stdlib", suffix).joinToString("-"), classifier)
dependencies.project(listOfNotNull(":kotlin-stdlib", suffix.takeUnless { kotlinBuildProperties.kotlinStdlibMpp && it == "mpp" }).joinToString("-"), classifier)
}
fun Project.kotlinBuiltins(): Any = kotlinBuiltins(forJvm = false)
+5 -4
View File
@@ -578,7 +578,7 @@ if (buildProperties.inJpsBuildIdeaSync) {
project(":kotlin-stdlib:jps-build").projectDir = "$rootDir/libraries/stdlib/jps-build" as File
} else {
// modules that we are currently cannot compile with jps
def stdlibMpp = buildProperties.getBoolean("kotlin.stdlib.mpp", false)
include ":core:builtins",
":kotlin-stdlib-common",
":kotlin-stdlib",
@@ -587,7 +587,6 @@ if (buildProperties.inJpsBuildIdeaSync) {
":kotlin-dom-api-compat",
":kotlin-stdlib-js-ir-minimal-for-test",
":kotlin-stdlib-wasm",
":kotlin-stdlib-mpp",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-stdlib:samples",
@@ -605,8 +604,10 @@ if (buildProperties.inJpsBuildIdeaSync) {
":kotlin-test:kotlin-test-wasm",
":native:native.tests"
if (!stdlibMpp) include ":kotlin-stdlib-mpp"
project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File
project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib/jvm" as File
project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib" + (stdlibMpp ? "" : "/jvm") as File
project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File
project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
project(':kotlin-dom-api-compat').projectDir = "$rootDir/libraries/kotlin-dom-api-compat" as File
@@ -614,7 +615,7 @@ if (buildProperties.inJpsBuildIdeaSync) {
project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File
project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File
project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File
project(':kotlin-stdlib-mpp').projectDir = "$rootDir/libraries/stdlib" as File
if (!stdlibMpp) project(':kotlin-stdlib-mpp').projectDir = "$rootDir/libraries/stdlib" as File
project(':kotlin-stdlib:samples').projectDir = "$rootDir/libraries/stdlib/samples" as File
project(":kotlin-stdlib-jvm-minimal-for-test").projectDir = "$rootDir/libraries/stdlib/jvm-minimal-for-test" as File