Files
kotlin-fork/libraries/stdlib/jdk7/build.gradle
T
2023-01-16 11:24:50 +00:00

120 lines
2.9 KiB
Groovy

description = 'Kotlin Standard Library JDK 7 extension'
apply plugin: 'kotlin'
JvmToolchain.configureJvmToolchain(project, JdkMajorVersion.JDK_1_8)
configurePublishing(project)
configureSourcesJar()
configureJavadocJar()
sourceSets {
main {
kotlin {
}
}
test {
kotlin {
srcDir 'test'
if(!BuildPropertiesKt.getKotlinBuildProperties(project).inIdeaSync) {
srcDir '../jvm/test'
srcDir '../common/test'
srcDir '../test'
}
}
}
noJdk7Test {
kotlin {
srcDir 'testNoJdk7'
}
}
java9 {
java {
srcDir 'java9'
}
}
}
configurations {
noJdk7TestApi.extendsFrom(testApi)
}
dependencies {
api project(':kotlin-stdlib')
testApi project(':kotlin-test:kotlin-test-junit')
}
jar {
manifestAttributes(manifest, project, 'Main', true)
from sourceSets.java9.output
}
sourcesJar {
from sourceSets.java9.allSource
}
artifacts {
archives sourcesJar
sources sourcesJar
}
compileKotlin {
kotlinJavaToolchain.toolchain.use(JvmToolchain.getToolchainLauncherFor(project, JdkMajorVersion.JDK_1_7))
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.freeCompilerArgs = [
"-Xallow-kotlin-package",
"-Xmultifile-parts-inherit",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-Xno-new-java-annotation-targets",
]
kotlinOptions.moduleName = project.name
}
compileTestKotlin {
kotlinOptions.freeCompilerArgs = [
"-Xallow-kotlin-package",
"-Xmulti-platform",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalUnsignedTypes",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.io.path.ExperimentalPathApi",
"-opt-in=kotlin.io.encoding.ExperimentalEncodingApi",
"-Xcommon-sources=${fileTree('../test').join(',')}",
"-XXLanguage:+RangeUntilOperator",
]
}
tasks.withType(Test) {
systemProperty("supportsNamedCapturingGroup", false)
}
configureFrontendIr(project)
LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib.jdk7')
task testJdk6Tests(type: Test) {
dependsOn(':kotlin-stdlib:testClasses')
group = "verification"
def kotlinStdLibTestOutput = project(':kotlin-stdlib').sourceSets.test.output
def objectFactory = project.objects
doFirst {
testClassesDirs = kotlinStdLibTestOutput
classpath = objectFactory.fileCollection().from(
testClassesDirs,
sourceSets.test.compileClasspath
)
}
}
task testNoJdk7(type: Test, dependsOn: noJdk7TestClasses) {
group = "verification"
testClassesDirs = sourceSets.noJdk7Test.output.classesDirs
classpath = sourceSets.noJdk7Test.runtimeClasspath
}
check.dependsOn testJdk6Tests, testNoJdk7