af6f17c243
This will prevent spawning second Kotlin daemon during compilation
except 'buildSrc' compilation. Original change was introduced in
2e515f3945 commit.
151 lines
3.8 KiB
Groovy
151 lines
3.8 KiB
Groovy
description = 'Kotlin Standard Library for JVM'
|
|
|
|
apply plugin: 'kotlin-platform-jvm'
|
|
|
|
archivesBaseName = 'kotlin-stdlib'
|
|
|
|
JvmToolchain.configureJvmToolchain(project, JdkMajorVersion.JDK_1_6)
|
|
|
|
configurePublishing(project)
|
|
configureJavadocJar()
|
|
configureSourcesJar()
|
|
|
|
configurations {
|
|
distSources
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir "${rootDir}/core/builtins/src"
|
|
srcDir 'runtime'
|
|
srcDir 'src'
|
|
}
|
|
}
|
|
test {
|
|
kotlin {
|
|
srcDir 'test'
|
|
}
|
|
}
|
|
longRunningTest {
|
|
kotlin {
|
|
srcDir 'testLongRunning'
|
|
}
|
|
}
|
|
java9 {
|
|
java {
|
|
srcDir 'java9'
|
|
}
|
|
}
|
|
}
|
|
|
|
LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib', [sourceSets.main.output])
|
|
|
|
configurations {
|
|
commonSources
|
|
longRunningTestCompile.extendsFrom(testCompile)
|
|
builtins {
|
|
attributes {
|
|
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements, LibraryElements.JAR))
|
|
}
|
|
}
|
|
compileOnly.extendsFrom(builtins)
|
|
testCompileOnly.extendsFrom(builtins)
|
|
}
|
|
|
|
dependencies {
|
|
expectedBy project(":kotlin-stdlib-common")
|
|
|
|
commonSources project(path: ":kotlin-stdlib-common", configuration: "sources")
|
|
|
|
api group: 'org.jetbrains', name: 'annotations', version:'13.0'
|
|
|
|
testApi project(':kotlin-test:kotlin-test-junit')
|
|
|
|
builtins project(':core:builtins')
|
|
}
|
|
|
|
jar {
|
|
dependsOn(configurations.builtins)
|
|
manifestAttributes(manifest, project, 'Main', true)
|
|
from {
|
|
zipTree(configurations.builtins.singleFile)
|
|
}
|
|
from sourceSets.java9.output
|
|
}
|
|
|
|
sourcesJar {
|
|
from "${rootDir}/core/builtins/native"
|
|
}
|
|
|
|
task distSourcesJar(type: Jar) {
|
|
dependsOn(sourcesJar, configurations.commonSources)
|
|
destinationDirectory = file("$buildDir/lib/dist")
|
|
classifier = 'sources'
|
|
duplicatesStrategy = DuplicatesStrategy.FAIL
|
|
|
|
from zipTree(sourcesJar.outputs.files.singleFile)
|
|
|
|
from(zipTree(configurations.commonSources.singleFile)) {
|
|
it.includeEmptyDirs = false
|
|
exclude 'META-INF/*'
|
|
into 'common'
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
sources sourcesJar
|
|
distSources distSourcesJar
|
|
}
|
|
|
|
DexMethodCountKt.dexMethodCount(project) { task ->
|
|
task.from(jar)
|
|
task.ownPackages = ['kotlin']
|
|
}
|
|
|
|
compileKotlin {
|
|
kotlinOptions {
|
|
freeCompilerArgs = [
|
|
"-Xallow-kotlin-package",
|
|
"-Xmultifile-parts-inherit",
|
|
"-opt-in=kotlin.RequiresOptIn",
|
|
"-opt-in=kotlin.ExperimentalMultiplatform",
|
|
"-opt-in=kotlin.contracts.ExperimentalContracts",
|
|
"-Xuse-14-inline-classes-mangling-scheme",
|
|
"-Xsuppress-deprecated-jvm-target-warning",
|
|
"-Xbuiltins-from-sources",
|
|
]
|
|
moduleName = "kotlin-stdlib"
|
|
}
|
|
}
|
|
|
|
compileTestKotlin {
|
|
kotlinOptions {
|
|
freeCompilerArgs += [
|
|
"-opt-in=kotlin.RequiresOptIn",
|
|
"-opt-in=kotlin.ExperimentalUnsignedTypes",
|
|
"-opt-in=kotlin.ExperimentalStdlibApi",
|
|
"-Xsuppress-deprecated-jvm-target-warning",
|
|
]
|
|
// This is needed for JavaTypeTest; typeOf for non-reified type parameters doesn't work otherwise, for implementation reasons.
|
|
freeCompilerArgs.remove("-Xno-optimized-callable-references")
|
|
}
|
|
}
|
|
|
|
compileLongRunningTestKotlin {
|
|
kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.ExperimentalStdlibApi"
|
|
}
|
|
|
|
configureFrontendIr(project)
|
|
|
|
task longRunningTest(type: Test, dependsOn: longRunningTestClasses) {
|
|
group = "verification"
|
|
testClassesDirs = sourceSets.longRunningTest.output.classesDirs
|
|
classpath = sourceSets.longRunningTest.runtimeClasspath
|
|
}
|
|
|
|
if (project.hasProperty("kotlin.stdlib.test.long.running")) {
|
|
check.dependsOn(longRunningTest)
|
|
}
|