blob: 1ec1e305a85c38a98cc5a3351a55ec9b6e97a125 [file] [log] [blame]
description = 'Kotlin Test for JS'
apply plugin: 'kotlin-platform-js'
configurations {
distJs
distLibrary
[compileClasspath, testCompileClasspath, testRuntimeClasspath].forEach {
it.attributes {
attribute(org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.jsCompilerAttribute, org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.legacy)
}
}
}
dependencies {
expectedBy project(':kotlin-test:kotlin-test-common')
expectedBy project(':kotlin-test:kotlin-test-annotations-common')
api RepoDependencies.kotlinStdlib(project, "mpp")
}
compileKotlin2Js {
kotlinOptions.freeCompilerArgs = [
"-Xallow-kotlin-package",
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-opt-in=kotlin.RequiresOptIn",
"-Xforce-deprecated-legacy-compiler-usage"
]
kotlinOptions {
moduleKind = "umd"
outputFile = "${buildDir}/classes/main/kotlin-test.js"
sourceMap = true
sourceMapPrefix = "./"
sourceMapEmbedSources = "always"
}
}
compileTestKotlin2Js {
kotlinOptions {
metaInfo = false
moduleKind = "umd"
freeCompilerArgs = ["-Xallow-kotlin-package", "-Xforce-deprecated-legacy-compiler-usage"]
}
}
archivesBaseName = 'kotlin-test-js'
jar {
enabled false
}
tasks.register("libraryJarWithoutIr", Jar) {
dependsOn(compileKotlin2Js)
archiveClassifier.set(null)
destinationDirectory = file("$buildDir/lib/dist")
from("$buildDir/classes/main")
LibrariesCommon.manifestAttributes(project, manifest, 'Test')
}
tasks.register("libraryJarWithIr", Zip) {
dependsOn(libraryJarWithoutIr)
archiveExtension = "jar"
destinationDirectory = file("$buildDir/libs")
duplicatesStrategy DuplicatesStrategy.FAIL
def archiveOperations = services.get(ArchiveOperations)
from { libraryJarWithoutIr.archiveFile.map { archiveOperations.zipTree(it) } }
dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
from {
def irKlib = tasks.getByPath(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
fileTree(irKlib.outputs.files.first().path)
}
}
jar.dependsOn(libraryJarWithIr)
tasks.register("sourcesJar", Jar) {
dependsOn(classes)
archiveClassifier.set('sources')
from (sourceSets.main.allSource)
}
artifacts {
archives libraryJarWithIr
distLibrary libraryJarWithIr
archives sourcesJar
distJs(file(compileKotlin2Js.kotlinOptions.outputFile)) {
builtBy(compileKotlin2Js)
}
}
RepoArtifacts.sourcesJar(project)
RepoArtifacts.javadocJar(project)