diff --git a/libraries/kotlin.test/js-v1/build.gradle.kts b/libraries/kotlin.test/js-v1/build.gradle.kts new file mode 100644 index 00000000000..fa599bb396b --- /dev/null +++ b/libraries/kotlin.test/js-v1/build.gradle.kts @@ -0,0 +1,77 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinCompile + +plugins { + kotlin("multiplatform") +} + +val commonMainSources by task { + from( + "$rootDir/libraries/kotlin.test/common/src/main", + "$rootDir/libraries/kotlin.test/annotations-common/src/main" + ) + into("$buildDir/commonMainSources") +} + +val commonTestSources by task { + from("$rootDir/libraries/kotlin.test/common/src/test/kotlin") + into("$buildDir/commonTestSources") +} + +val jsMainSources by task { + 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>().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) +} + diff --git a/settings.gradle b/settings.gradle index f20a371a7c0..5e0d76c57c6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -599,6 +599,7 @@ if (buildProperties.inJpsBuildIdeaSync) { ":kotlin-test", ":kotlin-test:kotlin-test-js", ":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-ir:kotlin-test-js-ir-it", ":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: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-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-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