| 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", |
| "-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 |
| |