[stdlib-mpp] Remove stdlib projects no longer included in build
This commit is contained in:
committed by
Space Team
parent
222f996d45
commit
93b107000a
@@ -1,206 +0,0 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||
|
||||
plugins {
|
||||
kotlin("multiplatform")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
js(IR) {
|
||||
nodejs {
|
||||
testTask(Action {
|
||||
useMocha {
|
||||
timeout = "10s"
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val unimplementedNativeBuiltIns =
|
||||
(file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/js-ir/builtins/").list())
|
||||
.map { "core/builtins/native/kotlin/$it" }
|
||||
|
||||
// Required to compile native builtins with the rest of runtime
|
||||
val builtInsHeader = """@file:Suppress(
|
||||
"NON_ABSTRACT_FUNCTION_WITH_NO_BODY",
|
||||
"MUST_BE_INITIALIZED_OR_BE_ABSTRACT",
|
||||
"EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE",
|
||||
"PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED",
|
||||
"WRONG_MODIFIER_TARGET",
|
||||
"UNUSED_PARAMETER"
|
||||
)
|
||||
"""
|
||||
|
||||
val commonMainSources by task<Sync> {
|
||||
dependsOn(":prepare:build.version:writeStdlibVersion")
|
||||
|
||||
val sources = listOf(
|
||||
"libraries/stdlib/common/src/",
|
||||
"libraries/stdlib/src/kotlin/",
|
||||
"libraries/stdlib/unsigned/"
|
||||
)
|
||||
|
||||
sources.forEach { path ->
|
||||
from("$rootDir/$path") {
|
||||
into(path.dropLastWhile { it != '/' })
|
||||
}
|
||||
}
|
||||
|
||||
into("$buildDir/commonMainSources")
|
||||
}
|
||||
|
||||
val jsMainSources by task<Sync> {
|
||||
val sources = listOf(
|
||||
"core/builtins/src/kotlin/",
|
||||
"libraries/stdlib/js/src/",
|
||||
"libraries/stdlib/js/runtime/"
|
||||
) + unimplementedNativeBuiltIns
|
||||
|
||||
val excluded = listOf(
|
||||
// stdlib/js/src/generated is used exclusively for current `js-v1` backend.
|
||||
"libraries/stdlib/js/src/generated/**",
|
||||
"libraries/stdlib/js/src/kotlin/browser",
|
||||
"libraries/stdlib/js/src/kotlin/dom",
|
||||
"libraries/stdlib/js/src/org.w3c",
|
||||
"libraries/stdlib/js/src/kotlinx",
|
||||
|
||||
// JS-specific optimized version of emptyArray() already defined
|
||||
"core/builtins/src/kotlin/ArrayIntrinsics.kt"
|
||||
)
|
||||
|
||||
sources.forEach { path ->
|
||||
from("$rootDir/$path") {
|
||||
into(path.dropLastWhile { it != '/' })
|
||||
excluded.filter { it.startsWith(path) }.forEach {
|
||||
exclude(it.substring(path.length))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
into("$buildDir/jsMainSources")
|
||||
|
||||
val unimplementedNativeBuiltIns = unimplementedNativeBuiltIns
|
||||
val buildDir = buildDir
|
||||
val builtInsHeader = builtInsHeader
|
||||
doLast {
|
||||
unimplementedNativeBuiltIns.forEach { path ->
|
||||
val file = File("$buildDir/jsMainSources/$path")
|
||||
val sourceCode = builtInsHeader + file.readText()
|
||||
file.writeText(sourceCode)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val commonTestSources by task<Sync> {
|
||||
val sources = listOf(
|
||||
"libraries/stdlib/test/",
|
||||
"libraries/stdlib/common/test/"
|
||||
)
|
||||
|
||||
sources.forEach { path ->
|
||||
from("$rootDir/$path") {
|
||||
into(path.dropLastWhile { it != '/' })
|
||||
}
|
||||
}
|
||||
|
||||
into("$buildDir/commonTestSources")
|
||||
}
|
||||
|
||||
val jsTestSources by task<Sync> {
|
||||
from("$rootDir/libraries/stdlib/js/test/")
|
||||
into("$buildDir/jsTestSources")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
sourceSets {
|
||||
named("commonMain") {
|
||||
kotlin.srcDir(files(commonMainSources.map { it.destinationDir }))
|
||||
}
|
||||
named("jsMain") {
|
||||
kotlin.srcDir(files(jsMainSources.map { it.destinationDir }))
|
||||
if (!kotlinBuildProperties.isInIdeaSync)
|
||||
kotlin.srcDir("builtins")
|
||||
if (!kotlinBuildProperties.isInIdeaSync)
|
||||
kotlin.srcDir("runtime")
|
||||
if (!kotlinBuildProperties.isInIdeaSync)
|
||||
kotlin.srcDir("src")
|
||||
}
|
||||
named("commonTest") {
|
||||
dependencies {
|
||||
api(project(":kotlin-test:kotlin-test-js-ir"))
|
||||
}
|
||||
kotlin.srcDir(files(commonTestSources.map { it.destinationDir }))
|
||||
}
|
||||
named("jsTest") {
|
||||
dependencies {
|
||||
api(project(":kotlin-test:kotlin-test-js-ir"))
|
||||
}
|
||||
kotlin.srcDir(files(jsTestSources.map { it.destinationDir }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<KotlinCompile<*>>().configureEach {
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-Xallow-kotlin-package",
|
||||
"-opt-in=kotlin.ExperimentalMultiplatform",
|
||||
"-opt-in=kotlin.contracts.ExperimentalContracts",
|
||||
"-opt-in=kotlin.RequiresOptIn",
|
||||
"-opt-in=kotlin.ExperimentalUnsignedTypes",
|
||||
"-opt-in=kotlin.ExperimentalStdlibApi",
|
||||
"-opt-in=kotlin.io.encoding.ExperimentalEncodingApi",
|
||||
)
|
||||
}
|
||||
|
||||
val compileKotlinJs by tasks.existing(KotlinCompile::class) {
|
||||
kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
|
||||
|
||||
if (!kotlinBuildProperties.disableWerror) {
|
||||
kotlinOptions.allWarningsAsErrors = true
|
||||
}
|
||||
}
|
||||
|
||||
val compileTestKotlinJs by tasks.existing(KotlinCompile::class) {
|
||||
val sources: FileCollection = kotlin.sourceSets["commonTest"].kotlin
|
||||
doFirst {
|
||||
// Note: common test sources are copied to the actual source directory by commonMainSources task,
|
||||
// so can't do this at configuration time:
|
||||
kotlinOptions.freeCompilerArgs += "-Xcommon-sources=${sources.joinToString(",")}"
|
||||
}
|
||||
}
|
||||
|
||||
val packFullRuntimeKLib by tasks.registering(Jar::class) {
|
||||
dependsOn(compileKotlinJs)
|
||||
from(buildDir.resolve("classes/kotlin/js/main"))
|
||||
destinationDirectory.set(rootProject.buildDir.resolve("js-ir-runtime"))
|
||||
archiveFileName.set("full-runtime.klib")
|
||||
}
|
||||
|
||||
val sourcesJar by tasks.registering(Jar::class) {
|
||||
dependsOn(jsMainSources)
|
||||
val jsMainSourcesDir = jsMainSources.get().destinationDir
|
||||
archiveClassifier.set("sources")
|
||||
includeEmptyDirs = false
|
||||
duplicatesStrategy = DuplicatesStrategy.FAIL
|
||||
from("${rootDir}/core/builtins/native/kotlin") {
|
||||
into("kotlin")
|
||||
include("Comparable.kt")
|
||||
include("Enum.kt")
|
||||
}
|
||||
from("$jsMainSourcesDir/core/builtins/native") {
|
||||
exclude("kotlin/Comparable.kt")
|
||||
}
|
||||
from("$jsMainSourcesDir/core/builtins/src")
|
||||
from("$jsMainSourcesDir/libraries/stdlib/js/src")
|
||||
from("builtins") {
|
||||
into("kotlin")
|
||||
exclude("Enum.kt")
|
||||
}
|
||||
from("runtime") {
|
||||
into("runtime")
|
||||
}
|
||||
from("src") {
|
||||
include("**/*.kt")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user