Files
kotlin-fork/libraries/stdlib/jdk8/build.gradle
T
Vyacheslav Gerasimov 14d9ec9fb2 Build: Use javadocJar helper to specify artifact explicitly
Creating javadocJar task for every project produces lots of unnecessary
tasks, some project don't even have code. Jar task without outDir
property set fails idea import with gradle 5.0+
2019-02-18 19:59:36 +03:00

123 lines
2.6 KiB
Groovy

description = 'Kotlin Standard Library JDK 8 extension'
apply plugin: 'kotlin'
apply plugin: 'pill-configurable'
configureJvm6Project(project)
configureDist(project)
configurePublishing(project)
ext.javaHome = JDK_18
ext.jvmTarget = "1.8"
pill {
importAsLibrary = true
}
dependencies {
compile project(':kotlin-stdlib')
compile project(':kotlin-stdlib-jdk7')
testCompile project(':kotlin-test:kotlin-test-junit')
}
sourceSets {
main {
kotlin {
srcDir 'src'
}
}
test {
kotlin {
srcDir 'test'
if(!System.properties.'idea.active') {
srcDir '../jvm/test'
srcDir '../common/test'
srcDir '../test'
srcDir '../jdk7/test'
}
}
}
java9 {
java {
srcDir 'java9'
}
}
}
jar {
manifestAttributes(manifest, project, 'Main' /*true*/)
// TODO: enable as soon as this doesn't cause D8/DX to crash
// from sourceSets.java9.output
}
task modularJar(type: Jar) {
dependsOn(jar)
manifestAttributes(manifest, project, 'Main', true)
classifier = 'modular'
from zipTree(jar.outputs.files.singleFile)
from sourceSets.java9.output
}
artifacts {
archives sourcesJar
archives modularJar
}
javadocJar()
dist {
from (jar, sourcesJar)
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
kotlinOptions.jdkHome = JDK_18
kotlinOptions.jvmTarget = 1.8
}
compileKotlin {
kotlinOptions.freeCompilerArgs = [
"-Xallow-kotlin-package",
"-Xmultifile-parts-inherit",
"-Xnormalize-constructor-calls=enable",
"-module-name", project.name
]
}
compileTestKotlin {
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package", "-Xmulti-platform", "-Xuse-experimental=kotlin.ExperimentalUnsignedTypes"]
}
compileJava9Sources(project, 'kotlin.stdlib.jdk8')
test {
executable = "$JDK_18/bin/java"
}
task testJdk6Tests(type: Test) { thisTask ->
dependsOn(':kotlin-stdlib:testClasses')
check.dependsOn(thisTask)
group = "verification"
executable = "$JDK_18/bin/java"
doFirst {
testClassesDirs = project(':kotlin-stdlib').sourceSets.test.output
classpath = files(
testClassesDirs,
configurations.testCompile
)
}
}
[9, 10, 11].forEach { v ->
task(type: Test, "jdk${v}Test") { thisTask ->
check.dependsOn(thisTask)
group = "verification"
executable = "${project.property("JDK_$v")}/bin/java"
if (v > 9)
enabled(file(executable).parentFile.isDirectory())
}
}