description = 'Kotlin Standard Library JDK 7 extension' apply plugin: 'kotlin' JvmToolchain.configureJvmToolchain(project, JdkMajorVersion.JDK_1_7) JvmToolchain.updateJvmTarget(project, "1.6") configurePublishing(project) configureSourcesJar() configureJavadocJar() sourceSets { main { kotlin { srcDir 'src' } } 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 } artifacts { archives sourcesJar sources sourcesJar } compileKotlin { kotlinOptions.freeCompilerArgs = [ "-Xallow-kotlin-package", "-Xmultifile-parts-inherit", "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.contracts.ExperimentalContracts", "-Xsuppress-deprecated-jvm-target-warning", ] 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(',')}", "-Xsuppress-deprecated-jvm-target-warning", ] } 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