Build java9 modular artifacts under 'modular' classifier

Provide additional modular artifacts as a workaround for KT-21266

Update module-info declarations:
  - add new packages
  - add exports and opens for internal PlatformImplementations
  - remove exports of kotlin.coroutines.experimental.*

#KT-27919 Fixed
This commit is contained in:
Ilya Gorbunov
2018-10-16 13:45:34 +03:00
parent f139ec72cd
commit e49789f819
10 changed files with 81 additions and 20 deletions
+12 -1
View File
@@ -41,14 +41,25 @@ sourceSets {
}
jar {
manifestAttributes(manifest, project, 'Main', true)
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 javadocJar
archives modularJar
}
dist {
@@ -2,4 +2,7 @@ module kotlin.stdlib.jdk7 {
requires transitive kotlin.stdlib;
exports kotlin.jdk7;
exports kotlin.internal.jdk7 to kotlin.stdlib.jdk8;
opens kotlin.internal.jdk7 to kotlin.stdlib;
}
+12 -1
View File
@@ -44,14 +44,25 @@ sourceSets {
}
jar {
manifestAttributes(manifest, project, 'Main', true)
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 javadocJar
archives modularJar
}
dist {
@@ -1,7 +1,10 @@
module kotlin.stdlib.jdk8 {
requires transitive kotlin.stdlib;
requires kotlin.stdlib.jdk7;
exports kotlin.collections.jdk8;
exports kotlin.streams.jdk8;
exports kotlin.text.jdk8;
opens kotlin.internal.jdk8 to kotlin.stdlib;
}
+14 -4
View File
@@ -73,7 +73,7 @@ dependencies {
}
jar {
manifestAttributes(manifest, project, 'Main', true)
manifestAttributes(manifest, project, 'Main' /*true*/)
from("${rootDir}/dist/builtins")
from sourceSets.experimental.output
from sourceSets.coroutines.output
@@ -85,14 +85,14 @@ jar {
task coroutinesJar(type: Jar) {
version = null
classifier = 'coroutines'
manifestAttributes(manifest, project, 'Main', true)
manifestAttributes(manifest, project, 'Main')
project.configure(manifest) { attributes 'Kotlin-Version': '1.3' }
}
task unsignedJar(type: Jar) {
version = null
classifier = 'unsigned'
manifestAttributes(manifest, project, 'Main', true)
manifestAttributes(manifest, project, 'Main')
project.configure(manifest) { attributes 'Kotlin-Version': '1.3' }
}
@@ -122,9 +122,19 @@ task distMavenSources(type: Copy) {
rename "-${java.util.regex.Pattern.quote(version)}", ''
}
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 javadocJar
archives modularJar
}
dist {
@@ -189,7 +199,7 @@ compileExperimentalKotlin {
}
}
compileJava9Sources(project, 'kotlin.stdlib')
compileJava9Sources(project, 'kotlin.stdlib', [sourceSets.main.output, sourceSets.coroutines.output])
compileCoroutinesKotlin {
kotlinOptions {
+12 -6
View File
@@ -4,33 +4,39 @@ module kotlin.stdlib {
exports kotlin.collections;
exports kotlin.comparisons;
exports kotlin.concurrent;
exports kotlin.contracts;
exports kotlin.coroutines;
exports kotlin.coroutines.intrinsics;
exports kotlin.coroutines.jvm.internal;
exports kotlin.io;
exports kotlin.jvm;
exports kotlin.jvm.functions;
exports kotlin.math;
exports kotlin.properties;
exports kotlin.random;
exports kotlin.ranges;
exports kotlin.reflect;
exports kotlin.sequences;
exports kotlin.system;
exports kotlin.text;
exports kotlin.coroutines.experimental;
exports kotlin.coroutines.experimental.intrinsics;
exports kotlin.coroutines.experimental.jvm.internal;
// do not export experimental coroutines packages
//exports kotlin.coroutines.experimental;
//exports kotlin.coroutines.experimental.intrinsics;
//exports kotlin.coroutines.experimental.jvm.internal;
//exports kotlin.coroutines.experimental.migration;
exports kotlin.experimental;
exports kotlin.internal;
exports kotlin.jvm.internal;
exports kotlin.jvm.internal.markers;
// TODO?
// exports org.jetbrains.annotations;
// Open packages with .kotlin_builtins files to kotlin-reflect, to allow reflection to load built-in declarations there
opens kotlin to kotlin.reflect;
opens kotlin.annotation to kotlin.reflect;
opens kotlin.collections to kotlin.reflect;
opens kotlin.coroutines to kotlin.reflect;
opens kotlin.internal to kotlin.reflect;
opens kotlin.ranges to kotlin.reflect;
opens kotlin.reflect to kotlin.reflect;