[stdlib] Merge js-ir specific sources into common js sources

This commit is contained in:
Ilya Gorbunov
2023-10-06 22:20:58 +02:00
committed by Space Team
parent f00d4022c4
commit 911fa3bbbb
55 changed files with 54 additions and 65 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ fun assertExists(file: File) {
}
val BUILT_INS_NATIVE_DIR_JVM = File("core/builtins/native/")
val BUILT_INS_NATIVE_DIR_JS = File("libraries/stdlib/js-ir/builtins/")
val BUILT_INS_NATIVE_DIR_JS = File("libraries/stdlib/js/builtins/")
val BUILT_INS_NATIVE_DIR_WASM = File("libraries/stdlib/wasm/builtins/")
val BUILT_INS_NATIVE_DIR_NATIVE = File("kotlin-native/runtime/src/main/kotlin/")
val BUILT_INS_SRC_DIR = File("core/builtins/src/")
+9 -14
View File
@@ -49,12 +49,9 @@ dependencies {
val builtinsDir = "${rootDir}/core/builtins"
val builtinsSrcDir = "${buildDir}/src/builtin-sources"
val jsCommonDir = "${projectDir}/js"
val jsCommonSrcDir = "${jsCommonDir}/src"
val jsCommonTestSrcDir = "${jsCommonDir}/test"
val jsDir = "${projectDir}/js"
// for js-ir
val jsIrDir = "${projectDir}/js-ir"
val jsIrMainSources = "${buildDir}/src/jsMainSources"
lateinit var jsIrTarget: KotlinJsTargetDsl
@@ -329,21 +326,19 @@ kotlin {
val prepareJsIrMainSources by tasks.registering(Sync::class)
kotlin {
srcDir(prepareJsIrMainSources)
srcDir("$jsCommonDir/src").apply {
srcDir("$jsDir/builtins")
srcDir("$jsDir/runtime")
srcDir("$jsDir/src").apply {
exclude("kotlin/browser")
exclude("kotlin/dom")
exclude("kotlinx")
exclude("org.w3c")
}
srcDir("$jsCommonDir/runtime")
srcDir("$jsIrDir/builtins")
srcDir("$jsIrDir/runtime")
srcDir("$jsIrDir/src")
}
prepareJsIrMainSources.configure {
val unimplementedNativeBuiltIns =
(file("$builtinsDir/native/kotlin/").list()!!.toSortedSet() - file("$jsIrDir/builtins/").list()!!)
(file("$builtinsDir/native/kotlin/").list()!!.toSortedSet() - file("$jsDir/builtins/").list()!!)
.map { "core/builtins/native/kotlin/$it" }
// TODO: try to reuse absolute paths defined in the beginning
@@ -392,7 +387,7 @@ kotlin {
dependencies {
api(project(":kotlin-test:kotlin-test-js-ir"))
}
kotlin.srcDir(jsCommonTestSrcDir)
kotlin.srcDir("${jsDir}/test")
}
val nativeWasmMain by creating {
@@ -602,14 +597,14 @@ tasks {
}
from("$jsIrMainSources/core/builtins/src")
from("$jsIrMainSources/libraries/stdlib/js/src")
from("$jsIrDir/builtins") {
from("$jsDir/builtins") {
into("kotlin")
exclude("Enum.kt")
}
from("$jsIrDir/runtime") {
from("$jsDir/runtime") {
into("runtime")
}
from("$jsIrDir/src") {
from("$jsDir/src") {
include("**/*.kt")
}
}
@@ -87,52 +87,48 @@ val commonMainCollectionSources by task<Sync> {
val jsMainSources by task<Sync> {
dependsOn(":kotlin-stdlib:prepareJsIrMainSources")
val jsDir = file("$rootDir/libraries/stdlib/js")
from {
val fullJsMainSources = tasks.getByPath(":kotlin-stdlib:prepareJsIrMainSources")
from("$jsDir/src") {
exclude(
listOf(
"libraries/stdlib/js/src/org.w3c/**",
"libraries/stdlib/js/src/kotlin/char.kt",
"libraries/stdlib/js/src/kotlin/collectionJs.kt",
"libraries/stdlib/js/src/kotlin/collections/**",
"libraries/stdlib/js/src/kotlin/time/**",
"libraries/stdlib/js/src/kotlin/console.kt",
"libraries/stdlib/js/src/kotlin/coreDeprecated.kt",
"libraries/stdlib/js/src/kotlin/date.kt",
"libraries/stdlib/js/src/kotlin/GroupingJs.kt",
"libraries/stdlib/js/src/kotlin/ItemArrayLike.kt",
"libraries/stdlib/js/src/kotlin/io/**",
"libraries/stdlib/js/src/kotlin/json.kt",
"libraries/stdlib/js/src/kotlin/promise.kt",
"libraries/stdlib/js/src/kotlin/regexp.kt",
"libraries/stdlib/js/src/kotlin/sequenceJs.kt",
"libraries/stdlib/js/src/kotlin/throwableExtensions.kt",
"libraries/stdlib/js/src/kotlin/text/**",
"libraries/stdlib/js/src/kotlin/reflect/KTypeHelpers.kt",
"libraries/stdlib/js/src/kotlin/reflect/KTypeParameterImpl.kt",
"libraries/stdlib/js/src/kotlin/reflect/KTypeImpl.kt",
"libraries/stdlib/js/src/kotlin/dom/**",
"libraries/stdlib/js/src/kotlin/browser/**",
"libraries/stdlib/js/src/kotlinx/dom/**",
"libraries/stdlib/js/src/kotlinx/browser/**",
"libraries/stdlib/js/src/kotlin/enums/**"
)
"generated/**",
"org.w3c/**",
"kotlin/char.kt",
"kotlin/collectionJs.kt",
"kotlin/collections/**",
"kotlin/time/**",
"kotlin/console.kt",
"kotlin/coreDeprecated.kt",
"kotlin/date.kt",
"kotlin/GroupingJs.kt",
"kotlin/ItemArrayLike.kt",
"kotlin/io/**",
"kotlin/json.kt",
"kotlin/promise.kt",
"kotlin/regexp.kt",
"kotlin/sequenceJs.kt",
"kotlin/throwableExtensions.kt",
"kotlin/text/**",
"kotlin/reflect/KTypeHelpers.kt",
"kotlin/reflect/KTypeParameterImpl.kt",
"kotlin/reflect/KTypeImpl.kt",
"kotlin/dom/**",
"kotlin/browser/**",
"kotlinx/dom/**",
"kotlinx/browser/**",
"kotlin/enums/**",
)
fullJsMainSources.outputs.files.singleFile
}
for (jsIrSrcDir in listOf("builtins", "runtime", "src")) {
from("$rootDir/libraries/stdlib/js-ir/$jsIrSrcDir") {
exclude(
listOf(
"collectionsHacks.kt",
"generated/**",
"kotlin/text/**"
)
)
into("libraries/stdlib/js-ir/$jsIrSrcDir")
}
from {
val fullJsMainSources = tasks.getByPath(":kotlin-stdlib:prepareJsIrMainSources") as Sync
fullJsMainSources.destinationDir
}
from("$jsDir/runtime") {
exclude("collectionsHacks.kt")
into("runtime")
}
from("$jsDir/builtins") {
into("builtins")
}
from("$rootDir/libraries/stdlib/js-ir-minimal-for-test/src")
+5 -3
View File
@@ -1,5 +1,7 @@
This directory contains shared sources of Kotlin/JS Standard Library for current and IR backends.
## Kotlin Standard Library for JS
Note that `stdlib/js/src/generated` is not shared but used exclusively for current `js-v1` backend.
This directory contains Kotlin/JS specific sources of Kotlin standard library
that are used together common sources to produce the `kotlin-stdlib-js` artifact.
Kotlin/JS Standard Library module is moved to `libraries/stdlib/js-v1`.
Additional sources are copied during the build from `/core/builtins/` except those builtins that
have a more specific version for K/JS (see `builtins` subdirectory).
+1 -5
View File
@@ -81,14 +81,10 @@ the Kotlin IntelliJ IDEA plugin:
- License: Apache 2 ([license/third_party/gwt_license.txt][gwt])
- Origin: Derived from GWT, (C) 2007-08 Google Inc.
- Path: libraries/stdlib/js-v1/src/js/long.js
- Path: libraries/stdlib/js/runtime/longJs.kt
- License: Apache 2 ([license/third_party/closure-compiler_LICENSE.txt][closure-compiler])
- Origin: Google Closure Library, Copyright 2009 The Closure Library Authors
- Path: libraries/stdlib/js-v1/src/js/polyfills.js
- License: Boost Software License 1.0 ([license/third_party/boost_LICENSE.txt][boost])
- Origin: Derived from boost special math functions, Copyright Eric Ford & Hubert Holin 2001.
- Path: libraries/stdlib/js/src/kotlin/js/math.polyfills.kt
- License: Boost Software License 1.0 ([license/third_party/boost_LICENSE.txt][boost])
- Origin: Derived from boost special math functions, Copyright Eric Ford & Hubert Holin 2001.