[stdlib-mpp] Workaround for building kotlin-test-js as a modern K/JS project
#KT-56106
This commit is contained in:
committed by
Space Team
parent
e53602e763
commit
9bdd365be4
@@ -0,0 +1,77 @@
|
|||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
kotlin("multiplatform")
|
||||||
|
}
|
||||||
|
|
||||||
|
val commonMainSources by task<Sync> {
|
||||||
|
from(
|
||||||
|
"$rootDir/libraries/kotlin.test/common/src/main",
|
||||||
|
"$rootDir/libraries/kotlin.test/annotations-common/src/main"
|
||||||
|
)
|
||||||
|
into("$buildDir/commonMainSources")
|
||||||
|
}
|
||||||
|
|
||||||
|
val commonTestSources by task<Sync> {
|
||||||
|
from("$rootDir/libraries/kotlin.test/common/src/test/kotlin")
|
||||||
|
into("$buildDir/commonTestSources")
|
||||||
|
}
|
||||||
|
|
||||||
|
val jsMainSources by task<Sync> {
|
||||||
|
from("$rootDir/libraries/kotlin.test/js/src")
|
||||||
|
into("$buildDir/jsMainSources")
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
js(LEGACY) {
|
||||||
|
nodejs()
|
||||||
|
compilations {
|
||||||
|
val main by getting; main.apply {
|
||||||
|
kotlinOptions {
|
||||||
|
moduleKind = "umd"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val commonMain by getting {
|
||||||
|
dependencies {
|
||||||
|
api(kotlinStdlib("mpp"))
|
||||||
|
}
|
||||||
|
kotlin.srcDir(commonMainSources.get().destinationDir)
|
||||||
|
}
|
||||||
|
val commonTest by getting {
|
||||||
|
kotlin.srcDir(commonTestSources.get().destinationDir)
|
||||||
|
}
|
||||||
|
val jsMain by getting {
|
||||||
|
kotlin.srcDir(jsMainSources.get().destinationDir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinCompile<*>>().configureEach {
|
||||||
|
kotlinOptions.freeCompilerArgs += listOf(
|
||||||
|
"-Xallow-kotlin-package",
|
||||||
|
"-opt-in=kotlin.ExperimentalMultiplatform",
|
||||||
|
"-opt-in=kotlin.contracts.ExperimentalContracts",
|
||||||
|
"-Xforce-deprecated-legacy-compiler-usage",
|
||||||
|
)
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
// kotlinOptions.freeCompilerArgs += listOfNotNull(
|
||||||
|
// "-Xklib-relative-path-base=$buildDir,$projectDir".takeIf { !kotlinBuildProperties.getBoolean("kotlin.build.use.absolute.paths.in.klib") }
|
||||||
|
// )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named("compileKotlinJs") {
|
||||||
|
// (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin-test"
|
||||||
|
dependsOn(commonMainSources)
|
||||||
|
dependsOn(jsMainSources)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named("compileTestKotlinJs") {
|
||||||
|
dependsOn(commonTestSources)
|
||||||
|
}
|
||||||
|
|
||||||
@@ -599,6 +599,7 @@ if (buildProperties.inJpsBuildIdeaSync) {
|
|||||||
":kotlin-test",
|
":kotlin-test",
|
||||||
":kotlin-test:kotlin-test-js",
|
":kotlin-test:kotlin-test-js",
|
||||||
":kotlin-test:kotlin-test-js-ir",
|
":kotlin-test:kotlin-test-js-ir",
|
||||||
|
":kotlin-test:kotlin-test-js-v1",
|
||||||
":kotlin-test:kotlin-test-js:kotlin-test-js-it",
|
":kotlin-test:kotlin-test-js:kotlin-test-js-it",
|
||||||
":kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it",
|
":kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it",
|
||||||
":kotlin-test:kotlin-test-wasm",
|
":kotlin-test:kotlin-test-wasm",
|
||||||
@@ -624,6 +625,7 @@ if (buildProperties.inJpsBuildIdeaSync) {
|
|||||||
project(':kotlin-test').projectDir = "$rootDir/libraries/kotlin.test" as File
|
project(':kotlin-test').projectDir = "$rootDir/libraries/kotlin.test" as File
|
||||||
project(':kotlin-test:kotlin-test-js').projectDir = "$rootDir/libraries/kotlin.test/js" as File
|
project(':kotlin-test:kotlin-test-js').projectDir = "$rootDir/libraries/kotlin.test/js" as File
|
||||||
project(':kotlin-test:kotlin-test-js-ir').projectDir = "$rootDir/libraries/kotlin.test/js-ir" as File
|
project(':kotlin-test:kotlin-test-js-ir').projectDir = "$rootDir/libraries/kotlin.test/js-ir" as File
|
||||||
|
project(':kotlin-test:kotlin-test-js-v1').projectDir = "$rootDir/libraries/kotlin.test/js-v1" as File
|
||||||
project(':kotlin-test:kotlin-test-js:kotlin-test-js-it').projectDir = "$rootDir/libraries/kotlin.test/js/it" as File
|
project(':kotlin-test:kotlin-test-js:kotlin-test-js-it').projectDir = "$rootDir/libraries/kotlin.test/js/it" as File
|
||||||
project(':kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it').projectDir = "$rootDir/libraries/kotlin.test/js-ir/it" as File
|
project(':kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it').projectDir = "$rootDir/libraries/kotlin.test/js-ir/it" as File
|
||||||
project(':kotlin-test:kotlin-test-wasm').projectDir = "$rootDir/libraries/kotlin.test/wasm" as File
|
project(':kotlin-test:kotlin-test-wasm').projectDir = "$rootDir/libraries/kotlin.test/wasm" as File
|
||||||
|
|||||||
Reference in New Issue
Block a user