description = 'Kotlin Common Standard Library' apply plugin: 'kotlin-platform-common' apply plugin: 'pill-configurable' configureDist(project) configurePublishing(project) def commonSrcDir = "../src" def commonTestSrcDir = "../test" pill { importAsLibrary = true } sourceSets { main { kotlin { srcDir 'src' srcDir commonSrcDir } } test { kotlin { srcDir commonTestSrcDir srcDir 'test' } } unsigned { kotlin { srcDir '../unsigned/src' } } coroutines { kotlin { srcDir '../coroutines/common/src' srcDir '../coroutines/src' } } } dependencies { testCompile project(":kotlin-test:kotlin-test-common") testCompile project(":kotlin-test:kotlin-test-annotations-common") unsignedCompile sourceSets.main.output coroutinesCompile sourceSets.main.output } compileKotlinCommon { dependsOn(":prepare:build.version:writeStdlibVersion") // dependsOn ":prepare:compiler:prepare-compiler-with-bootstrap-runtime" // compilerJarFile = compilerJarWithBootstrapRuntime } compileKotlinCommon { kotlinOptions { freeCompilerArgs = [ "-module-name", project.name, "-Xuse-experimental=kotlin.Experimental" ] } } compileUnsignedKotlinCommon { kotlinOptions { freeCompilerArgs += [ "-XXLanguage:+InlineClasses" ] } } compileCoroutinesKotlinCommon { kotlinOptions { languageVersion = "1.3" apiVersion = "1.3" freeCompilerArgs = [ "-module-name", project.name ] } } kotlin.experimental.coroutines 'enable' jar { manifestAttributes(manifest, project, 'Main') } task coroutinesCommonJar(type: Jar) { classifier = 'coroutines' version = null manifestAttributes(manifest, project, 'Main') project.configure(manifest) { attributes 'Kotlin-Version': '1.3' } from sourceSets.coroutines.output } task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.kotlin } configurations { sources } artifacts { archives sourcesJar sources sourcesJar archives javadocJar } // TODO: call the "dist" task instead, once we need to publish kotlin-stdlib-common.jar with the compiler distribution task distCommon(type: Copy) { from(jar) into "$distDir/common" rename "-${java.util.regex.Pattern.quote(version)}", '' } dist.dependsOn distCommon task experimentalCommonJarsDist(type: Copy) { from coroutinesCommonJar into distDir } dist.dependsOn experimentalCommonJarsDist classes.setDependsOn(classes.dependsOn.findAll { it != "compileJava" })