[JS IR] Build hybrid versions of stdlib and kotlin.test

IR version of libraries are no published by default inside pre-IR JARs
This commit is contained in:
Svyatoslav Kuzmich
2019-10-17 14:14:07 +03:00
parent d872b27663
commit b9f88350dd
6 changed files with 34 additions and 91 deletions
+6 -12
View File
@@ -92,7 +92,7 @@ configurations {
dependencies {
expectedBy project(":kotlin-stdlib-common")
commonSources project(path: ":kotlin-stdlib-common", configuration: "sources")
testCompile project(':kotlin-test:kotlin-test-js-ir')
testCompile project(':kotlin-test:kotlin-test-js')
}
@@ -107,8 +107,8 @@ compileKotlin2Js {
main = "noCall"
verbose = true
freeCompilerArgs += [
"-Xir",
"-Xir-produce-only=klib",
"-Xir-produce-klib-dir",
"-Xir-only",
"-Xallow-kotlin-package",
"-Xallow-result-return-type",
"-Xuse-experimental=kotlin.Experimental",
@@ -120,7 +120,7 @@ compileKotlin2Js {
}
def testOutputFile = "${buildDir}/classes/kotlin/test/kotlin-stdlib-js-ir_test.js"
def kotlinTestTestOutputFile = "${project(':kotlin-test:kotlin-test-js-ir').buildDir}/classes/kotlin/test/kotlin-test-js-ir_test.js"
def kotlinTestTestOutputFile = "${project(':kotlin-test:kotlin-test-js').buildDir}/classes/kotlin/test/kotlin-test-js-ir_test.js"
compileTestKotlin2Js {
kotlinOptions {
@@ -128,8 +128,7 @@ compileTestKotlin2Js {
verbose = true
outputFile = testOutputFile
freeCompilerArgs += [
"-Xir",
"-Xir-produce-only=js",
"-Xir-produce-js",
"-verbose",
"-Xuse-experimental=kotlin.Experimental",
"-Xuse-experimental=kotlin.ExperimentalUnsignedTypes",
@@ -155,11 +154,6 @@ artifacts {
archives sourcesJar
}
if (project.findProperty("kotlin.stdlib.js.ir.publish")?.toBoolean() == true) {
configurePublishing(project)
}
node {
download = true
version = '8.9.4' // The default 6.9.1 has buggy hyperbolic functions implementation
@@ -177,7 +171,7 @@ task installTeamcityReporter(type: NpmTask) {
task runMocha(type: NodeTask) {
dependsOn compileTestKotlin2Js
dependsOn installMocha
dependsOn ':kotlin-test:kotlin-test-js-ir:testClasses'
dependsOn ':kotlin-test:kotlin-test-js:testClasses'
script = file("${buildDir}/node_modules/mocha/bin/mocha")
+22 -3
View File
@@ -14,6 +14,7 @@ configurations {
commonSources
distSources
distJs
distLibrary
}
def builtinsSrcDir = "${buildDir}/builtin-sources"
@@ -283,9 +284,10 @@ jar {
enabled false
}
task mergedJar(type: Jar, dependsOn: compileJs) {
task libraryJarWithoutIr(type: Jar, dependsOn: compileJs) {
classifier = null
manifestAttributes(manifest, project, 'Main')
destinationDirectory = file("$buildDir/lib/dist")
// TODO: Use standard implementation title after js stdlib detector becomes more flexible (KT-17655)
Properties properties = new Properties()
@@ -307,6 +309,22 @@ task mergedJar(type: Jar, dependsOn: compileJs) {
exclude "${experimentalJsModuleName}.*"
}
task libraryJarWithIr(type: Zip, dependsOn: libraryJarWithoutIr) {
def irStdlibJar = tasks.getByPath(":kotlin-stdlib-js-ir:jar")
dependsOn(irStdlibJar)
archiveExtension = "jar"
destinationDirectory = file("$buildDir/libs")
duplicatesStrategy DuplicatesStrategy.FAIL
from zipTree(libraryJarWithoutIr.archiveFile)
from(zipTree(irStdlibJar.archiveFile)) {
exclude 'META-INF/*'
}
}
task sourcesJar(type: Jar, dependsOn: compileJs) {
classifier = 'sources'
includeEmptyDirs false
@@ -352,11 +370,12 @@ task distSourcesJar(type: Jar) {
artifacts {
runtime mergedJar
archives mergedJar
runtime libraryJarWithIr
archives libraryJarWithIr
archives sourcesJar
sources sourcesJar
distSources distSourcesJar
distLibrary libraryJarWithoutIr
compileJs.outputs.files.forEach { artifact ->
distJs(artifact) { builtBy(compileJs) }