[stdlib] Merge js-ir specific sources into common js sources
This commit is contained in:
committed by
Space Team
parent
f00d4022c4
commit
911fa3bbbb
@@ -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/")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user