Move 1.3-specific part of stdlib to another source set

This commit is contained in:
Alexander Udalov
2018-02-12 19:09:37 +01:00
parent ef6b6cd261
commit 31e762c679
5 changed files with 56 additions and 28 deletions
+21
View File
@@ -35,6 +35,11 @@ sourceSets {
srcDir 'src' srcDir 'src'
} }
} }
experimental {
kotlin {
srcDir "experimental"
}
}
test { test {
kotlin { kotlin {
srcDir 'test' srcDir 'test'
@@ -64,6 +69,7 @@ jar {
manifestAttributes(manifest, project, 'Main') manifestAttributes(manifest, project, 'Main')
from("${rootDir}/dist/builtins") from("${rootDir}/dist/builtins")
from sourceSets.builtins.output from sourceSets.builtins.output
from sourceSets.experimental.output
} }
task distJar(type: Jar) { task distJar(type: Jar) {
@@ -74,6 +80,7 @@ task distJar(type: Jar) {
from sourceSets.annotations.output from sourceSets.annotations.output
from sourceSets.builtins.output from sourceSets.builtins.output
from sourceSets.main.output from sourceSets.main.output
from sourceSets.experimental.output
} }
task builtinsJar(type: Jar) { task builtinsJar(type: Jar) {
@@ -142,4 +149,18 @@ compileKotlin {
} }
} }
compileExperimentalKotlin {
kotlinOptions {
languageVersion = "1.3"
apiVersion = "1.3"
freeCompilerArgs = [
"-version",
"-Xallow-kotlin-package",
"-Xmultifile-parts-inherit",
"-Xdump-declarations-to=${buildDir}/stdlib-experimental-declarations.json",
"-module-name", "kotlin-stdlib-experimental"
]
}
}
kotlin.experimental.coroutines 'enable' kotlin.experimental.coroutines 'enable'
+30 -3
View File
@@ -16,6 +16,7 @@ def builtinsSrcDir2 = "${buildDir}/builtin-sources-for-builtins"
def commonSrcDir = "${buildDir}/common-sources" def commonSrcDir = "${buildDir}/common-sources"
def commonTestSrcDir = "${buildDir}/common-test-sources" def commonTestSrcDir = "${buildDir}/common-test-sources"
def builtinsDir = "${rootDir}/core/builtins" def builtinsDir = "${rootDir}/core/builtins"
def experimentalSrcDir = "${rootDir}/libraries/stdlib/experimental"
def jsLibrariesDir = "${rootDir}/js/js.libraries" def jsLibrariesDir = "${rootDir}/js/js.libraries"
def jsSrcDir = "${jsLibrariesDir}/src" def jsSrcDir = "${jsLibrariesDir}/src"
def jsTestSrcDir = "${jsLibrariesDir}/test" def jsTestSrcDir = "${jsLibrariesDir}/test"
@@ -46,6 +47,12 @@ sourceSets {
} }
} }
experimental {
kotlin {
srcDir experimentalSrcDir
}
}
test { test {
kotlin { kotlin {
srcDir commonTestSrcDir srcDir commonTestSrcDir
@@ -140,6 +147,18 @@ compileKotlin2Js {
} }
} }
compileExperimentalKotlin2Js {
dependsOn compileKotlin2Js
kotlinOptions {
languageVersion = "1.3"
apiVersion = "1.3"
outputFile = "${buildDir}/classes/main/kotlin-experimental.js"
sourceMap = true
sourceMapPrefix = "./"
freeCompilerArgs += [ "-source-map-base-dirs", [experimentalSrcDir].join(File.pathSeparator) ]
}
}
compileTestKotlin2Js { compileTestKotlin2Js {
dependsOn preprocessSourcesTest dependsOn preprocessSourcesTest
kotlinOptions { kotlinOptions {
@@ -148,21 +167,26 @@ compileTestKotlin2Js {
} }
task compileJs(type: JavaExec) { task compileJs(type: JavaExec) {
dependsOn compileBuiltinsKotlin2Js, compileKotlin2Js dependsOn compileBuiltinsKotlin2Js, compileKotlin2Js, compileExperimentalKotlin2Js
inputs.files(compileBuiltinsKotlin2Js.outputs.files) inputs.files(compileBuiltinsKotlin2Js.outputs.files)
inputs.files(compileKotlin2Js.outputs.files) inputs.files(compileKotlin2Js.outputs.files)
inputs.files(compileExperimentalKotlin2Js.outputs.files)
inputs.dir(jsSrcDir) inputs.dir(jsSrcDir)
outputs.file(jsOutputFile) outputs.file(jsOutputFile)
outputs.file("${jsOutputFile}.map") outputs.file("${jsOutputFile}.map")
def inputFiles = fileTree("${jsSrcJsDir}") { def inputFiles = fileTree(jsSrcJsDir) {
include '**/*.js' include '**/*.js'
} }
main = "org.jetbrains.kotlin.js.FileMergerKt" main = "org.jetbrains.kotlin.js.FileMergerKt"
doFirst { doFirst {
args = [jsOutputFile, rootDir, "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } + args = [jsOutputFile, rootDir, "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } +
["$buildDir/classes/builtins/kotlin.js", "$buildDir/classes/main/kotlin.js"] (compileBuiltinsKotlin2Js.outputs.files.collect { it.path } +
compileKotlin2Js.outputs.files.collect { it.path } +
compileExperimentalKotlin2Js.outputs.files.collect { it.path }).findAll {
it.endsWith(".js") && !it.endsWith(".meta.js")
}
} }
classpath = configurations.merger classpath = configurations.merger
@@ -241,6 +265,9 @@ task sourcesJar(type: Jar, dependsOn: classes) {
exclude '**/*.java' exclude '**/*.java'
exclude 'js/**' exclude 'js/**'
} }
from (sourceSets.experimental.allSource) {
into 'kotlin'
}
} }
@@ -3,26 +3,6 @@ public final class kotlin/ExceptionsKt {
public static final fun getStackTrace (Ljava/lang/Throwable;)[Ljava/lang/StackTraceElement; public static final fun getStackTrace (Ljava/lang/Throwable;)[Ljava/lang/StackTraceElement;
} }
public abstract interface annotation class kotlin/Experimental : java/lang/annotation/Annotation {
public abstract fun changesMayBreak ()[Lkotlin/Experimental$Impact;
public abstract fun level ()Lkotlin/Experimental$Level;
}
public final class kotlin/Experimental$Impact : java/lang/Enum {
public static final field COMPILATION Lkotlin/Experimental$Impact;
public static final field LINKAGE Lkotlin/Experimental$Impact;
public static final field RUNTIME Lkotlin/Experimental$Impact;
public static fun valueOf (Ljava/lang/String;)Lkotlin/Experimental$Impact;
public static fun values ()[Lkotlin/Experimental$Impact;
}
public final class kotlin/Experimental$Level : java/lang/Enum {
public static final field ERROR Lkotlin/Experimental$Level;
public static final field WARNING Lkotlin/Experimental$Level;
public static fun valueOf (Ljava/lang/String;)Lkotlin/Experimental$Level;
public static fun values ()[Lkotlin/Experimental$Level;
}
public final class kotlin/KotlinVersion : java/lang/Comparable { public final class kotlin/KotlinVersion : java/lang/Comparable {
public static final field CURRENT Lkotlin/KotlinVersion; public static final field CURRENT Lkotlin/KotlinVersion;
public static final field Companion Lkotlin/KotlinVersion$Companion; public static final field Companion Lkotlin/KotlinVersion$Companion;
@@ -104,10 +84,6 @@ public final class kotlin/TuplesKt {
public static final fun toList (Lkotlin/Triple;)Ljava/util/List; public static final fun toList (Lkotlin/Triple;)Ljava/util/List;
} }
public abstract interface annotation class kotlin/UseExperimental : java/lang/annotation/Annotation {
public abstract fun markerClass ()[Ljava/lang/Class;
}
public final class kotlin/_Assertions { public final class kotlin/_Assertions {
public static final field INSTANCE Lkotlin/_Assertions; public static final field INSTANCE Lkotlin/_Assertions;
} }
@@ -38,7 +38,11 @@ class RuntimePublicAPITest {
} }
@Test fun kotlinStdlibRuntimeMerged() { @Test fun kotlinStdlibRuntimeMerged() {
snapshotAPIAndCompare("../../stdlib/build/libs", "kotlin-stdlib", listOf("../stdlib-declarations.json", "../runtime-declarations.json"), listOf("kotlin.jvm.internal")) snapshotAPIAndCompare(
"../../stdlib/build/libs", "kotlin-stdlib",
listOf("../stdlib-declarations.json", "../runtime-declarations.json", "../stdlib-experimental-declarations.json"),
listOf("kotlin.jvm.internal")
)
} }
@Test fun kotlinStdlibJdk7() { @Test fun kotlinStdlibJdk7() {