14d9ec9fb2
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+
123 lines
2.6 KiB
Groovy
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())
|
|
}
|
|
}
|