Documentation source sets configuration tuning

- consistent naming of source sets
- register JDK7/8 docs source sets only since 1.2
- source set dependencies in kotlin-test module
- classpath tuning
  - Enumerate classpath jars in library directories:
    compiler can't use just directory as a classpath
  - No need to pass classpaths for stdlib docs build:
    it's analyzed from sources and doesn't have other dependencies
This commit is contained in:
Ilya Gorbunov
2023-01-10 17:59:57 +01:00
committed by Space Team
parent a758e0bae7
commit e105d11a2b
+63 -59
View File
@@ -48,19 +48,11 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
return tasks.register("kotlin-stdlib_" + version + (isLatest ? "_latest" : ""), DokkaTask) { return tasks.register("kotlin-stdlib_" + version + (isLatest ? "_latest" : ""), DokkaTask) {
dependsOn(prepare) dependsOn(prepare)
def kotlin_libs = pKotlinBig().kotlin_libs
def kotlin_native_root = pKotlinNative().kotlin_native_root
def kotlin_native_libs = pKotlinNative().kotlin_native_libs
def kotlin_stdlib_dir = "$kotlin_root/libraries/stdlib" def kotlin_stdlib_dir = "$kotlin_root/libraries/stdlib"
def stdlibIncludeMd = "$kotlin_root/libraries/stdlib/src/Module.md" def stdlibIncludeMd = "$kotlin_root/libraries/stdlib/src/Module.md"
def stdlibSamples = "$kotlin_root/libraries/stdlib/samples/test" def stdlibSamples = "$kotlin_root/libraries/stdlib/samples/test"
def stdlibCommonClasspath = ["$kotlin_libs/kotlin-stdlib-common/".toString()]
def stdlibJvmClasspath = ["$kotlin_libs/kotlin-stdlib/".toString(), "$kotlin_libs/kotlin-stdlib-jdk7".toString(), "$kotlin_libs/kotlin-stdlib-jdk8/".toString(), "$kotlin_root/core/reflection.jvm/src".toString()]
def stdlibNativeClasspath = ["$kotlin_native_libs/klib/common/stdlib".toString()]
def stdlibJsClasspath = ["$kotlin_libs/kotlin-stdlib-js/".toString()]
def suppressedPackages = [ def suppressedPackages = [
"kotlin.internal", "kotlin.internal",
"kotlin.jvm.internal", "kotlin.jvm.internal",
@@ -91,11 +83,10 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
} }
dokkaSourceSets { dokkaSourceSets {
if (version != "1.0" && version != "1.1") { // Common platform since Kotlin 1.2 if (version != "1.0" && version != "1.1") { // Common platform since Kotlin 1.2
register("kotlin-stdlib-common") { register("common") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.common) platform.set(Platform.common)
noJdkLink.set(true) noJdkLink.set(true)
classpath.setFrom(stdlibCommonClasspath)
displayName.set("Common") displayName.set("Common")
sourceRoots.from("$kotlin_root/core/builtins/native") sourceRoots.from("$kotlin_root/core/builtins/native")
@@ -107,17 +98,14 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
} }
} }
register("kotlin-stdlib-java-common") { register("jvm") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(stdlibJvmClasspath)
displayName.set("JVM") displayName.set("JVM")
if (version != "1.0" && version != "1.1") { if (version != "1.0" && version != "1.1") {
dependsOn("kotlin-stdlib-common") dependsOn("common")
} }
//sourceRoots.from("$kotlin_root/core/builtins/native")
//sourceRoots.from("$kotlin_root/core/builtins/src")
sourceRoots.from("$kotlin_stdlib_dir/jvm/src") sourceRoots.from("$kotlin_stdlib_dir/jvm/src")
@@ -125,6 +113,8 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/annotations") sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/annotations")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/JvmClassMapping.kt") sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/JvmClassMapping.kt")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/PurelyImplements.kt") sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/jvm/PurelyImplements.kt")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/Metadata.kt")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/Throws.kt")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/TypeAliases.kt") sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/TypeAliases.kt")
sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/text/TypeAliases.kt") sourceRoots.from("$kotlin_stdlib_dir/jvm/runtime/kotlin/text/TypeAliases.kt")
@@ -138,44 +128,36 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
sourceRoots.from("$kotlin_stdlib_dir/unsigned/src") sourceRoots.from("$kotlin_stdlib_dir/unsigned/src")
} }
} }
register("kotlin-stdlib-jdk8") { if (version != "1.0" && version != "1.1") {
register("jvm-jdk8") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(stdlibJvmClasspath)
displayName.set("JRE8") displayName.set("JVM8")
dependsOn("kotlin-stdlib-java-common") dependsOn("jvm")
if (version != "1.0" && version != "1.1") { dependsOn("common")
dependsOn("kotlin-stdlib-common")
}
sourceRoots.from("$kotlin_stdlib_dir/jdk8/src") sourceRoots.from("$kotlin_stdlib_dir/jdk8/src")
} }
register("kotlin-stdlib-jdk7") { register("jvm-jdk7") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(stdlibJvmClasspath)
displayName.set("JVM7")
displayName.set("JRE7") dependsOn("jvm")
dependsOn("kotlin-stdlib-java-common") dependsOn("common")
if (version != "1.0" && version != "1.1") {
dependsOn("kotlin-stdlib-common")
}
sourceRoots.from("$kotlin_stdlib_dir/jdk7/src") sourceRoots.from("$kotlin_stdlib_dir/jdk7/src")
} }
}
if (version != "1.0") { // JS platform since Kotlin 1.1 if (version != "1.0") { // JS platform since Kotlin 1.1
register("kotlin-stdlib-js") { register("js") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.js) platform.set(Platform.js)
noJdkLink.set(true) noJdkLink.set(true)
classpath.setFrom(stdlibJsClasspath)
displayName.set("JS") displayName.set("JS")
if (version != "1.0" && version != "1.1") { if (version != "1.0" && version != "1.1") {
dependsOn("kotlin-stdlib-common") dependsOn("common")
} }
//sourceRoots.from("$kotlin_root/core/builtins/native")
//sourceRoots.from("$kotlin_root/core/builtins/src")
sourceRoots.from("$kotlin_stdlib_dir/js/src") sourceRoots.from("$kotlin_stdlib_dir/js/src")
sourceRoots.from("$kotlin_stdlib_dir/js-v1/src") sourceRoots.from("$kotlin_stdlib_dir/js-v1/src")
@@ -200,14 +182,13 @@ TaskProvider<DokkaTask> createStdLibVersionedDocTask(String version, Boolean isL
} }
} }
if (version != "1.0" && version != "1.1" && version != "1.2") { // Native platform since Kotlin 1.3 if (version != "1.0" && version != "1.1" && version != "1.2") { // Native platform since Kotlin 1.3
register("kotlin-stdlib-native") { register("native") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.native) platform.set(Platform.native)
noJdkLink.set(true) noJdkLink.set(true)
classpath.setFrom(stdlibNativeClasspath)
displayName.set("Native") displayName.set("Native")
dependsOn("kotlin-stdlib-common") dependsOn("common")
sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/main/kotlin") sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/main/kotlin")
sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/native/kotlin") sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/native/kotlin")
@@ -249,12 +230,12 @@ TaskProvider<DokkaTask> createKotlinTestVersionedDocTask(String version, Boolean
def kotlinTestIncludeMd = "$kotlin_root/libraries/kotlin.test/Module.md" def kotlinTestIncludeMd = "$kotlin_root/libraries/kotlin.test/Module.md"
def kotlinTestCommonClasspath = ["$kotlin_libs/kotlin-test-common".toString()] def kotlinTestCommonClasspath = fileTree("$kotlin_libs/kotlin-test-common")
def kotlinTestJunitClasspath = ["$kotlin_libs/kotlin-test-junit".toString()] def kotlinTestJunitClasspath = fileTree("$kotlin_libs/kotlin-test-junit")
def kotlinTestJunit5Classpath = ["$kotlin_libs/kotlin-test-junit5".toString()] def kotlinTestJunit5Classpath = fileTree("$kotlin_libs/kotlin-test-junit5")
def kotlinTestTestngClasspath = ["$kotlin_libs/kotlin-test-testng".toString()] def kotlinTestTestngClasspath = fileTree("$kotlin_libs/kotlin-test-testng")
def kotlinTestJsClasspath = ["$kotlin_libs/kotlin-test-js".toString()] def kotlinTestJsClasspath = fileTree("$kotlin_libs/kotlin-test-js")
def kotlinTestJvmClasspath = ["$kotlin_libs/kotlin-test".toString()] def kotlinTestJvmClasspath = fileTree("$kotlin_libs/kotlin-test")
def stdlibPackageList = new URL("file:///${stdlibDocTask.get().outputDirectory.get()}/stdlib/package-list".toString()) def stdlibPackageList = new URL("file:///${stdlibDocTask.get().outputDirectory.get()}/stdlib/package-list".toString())
def junit5PackageList = new URL("https://junit.org/junit5/docs/current/api/element-list".toString()) def junit5PackageList = new URL("https://junit.org/junit5/docs/current/api/element-list".toString())
@@ -274,32 +255,43 @@ TaskProvider<DokkaTask> createKotlinTestVersionedDocTask(String version, Boolean
} }
dokkaSourceSets { dokkaSourceSets {
"kotlin-test-common" { if (version != "1.0" && version != "1.1") { // Common platform since Kotlin 1.2
jdkVersion.set(8) register("common") {
platform.set(Platform.common) jdkVersion.set(8)
classpath.setFrom(kotlinTestCommonClasspath) platform.set(Platform.common)
noJdkLink.set(true) classpath.setFrom(kotlinTestCommonClasspath)
noJdkLink.set(true)
displayName.set("Common") displayName.set("Common")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/common/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/common/src/main/kotlin")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/annotations-common/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/annotations-common/src/main/kotlin")
}
} }
"kotlin-test-jvm" { register("jvm") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(kotlinTestJvmClasspath) classpath.setFrom(kotlinTestJvmClasspath)
displayName.set("JVM") displayName.set("JVM")
if (version != "1.0" && version != "1.1")
dependsOn("common")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/jvm/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/jvm/src/main/kotlin")
if (version == "1.0" || version == "1.1") {
sourceRoots.from("$kotlin_root/libraries/kotlin.test/common/src/main/kotlin")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/annotations-common/src/main/kotlin")
}
} }
"kotlin-test-JUnit" { register("jvm-JUnit") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(kotlinTestJunitClasspath) classpath.setFrom(kotlinTestJunitClasspath)
displayName.set("JUnit") displayName.set("JUnit")
if (version != "1.0" && version != "1.1")
dependsOn("common")
dependsOn("jvm")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit/src/main/kotlin")
externalDocumentationLink { externalDocumentationLink {
@@ -308,12 +300,15 @@ TaskProvider<DokkaTask> createKotlinTestVersionedDocTask(String version, Boolean
} }
} }
"kotlin-test-JUnit5" { if (version != "1.0" && version != "1.1")
register("jvm-JUnit5") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(kotlinTestJunit5Classpath) classpath.setFrom(kotlinTestJunit5Classpath)
displayName.set("JUnit5") displayName.set("JUnit5")
dependsOn("common")
dependsOn("jvm")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit5/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit5/src/main/kotlin")
externalDocumentationLink { externalDocumentationLink {
@@ -322,12 +317,15 @@ TaskProvider<DokkaTask> createKotlinTestVersionedDocTask(String version, Boolean
} }
} }
"kotlin-test-TestNG" { if (version != "1.0" && version != "1.1")
register("jvm-TestNG") {
jdkVersion.set(8) jdkVersion.set(8)
platform.set(Platform.jvm) platform.set(Platform.jvm)
classpath.setFrom(kotlinTestTestngClasspath) classpath.setFrom(kotlinTestTestngClasspath)
displayName.set("TestNG") displayName.set("TestNG")
dependsOn("common")
dependsOn("jvm")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/testng/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/testng/src/main/kotlin")
// externalDocumentationLink { // externalDocumentationLink {
@@ -336,22 +334,28 @@ TaskProvider<DokkaTask> createKotlinTestVersionedDocTask(String version, Boolean
// } // }
} }
if (version != "1.0") { // JS platform since Kotlin 1.1 if (version != "1.0") { // JS platform since Kotlin 1.1
"kotlin-test-js" { register("js") {
platform.set(Platform.js) platform.set(Platform.js)
classpath.setFrom(kotlinTestJsClasspath) classpath.setFrom(kotlinTestJsClasspath)
noJdkLink.set(true) noJdkLink.set(true)
displayName.set("JS") displayName.set("JS")
if (version != "1.1")
dependsOn("common")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/js/src/main/kotlin") sourceRoots.from("$kotlin_root/libraries/kotlin.test/js/src/main/kotlin")
if (version == "1.0" || version == "1.1") {
sourceRoots.from("$kotlin_root/libraries/kotlin.test/common/src/main/kotlin")
sourceRoots.from("$kotlin_root/libraries/kotlin.test/annotations-common/src/main/kotlin")
}
} }
} }
if (version != "1.0" && version != "1.1" && version != "1.2") { // Native platform since Kotlin 1.3 if (version != "1.0" && version != "1.1" && version != "1.2") { // Native platform since Kotlin 1.3
"kotlin-test-native" { register("native") {
platform.set(Platform.native) platform.set(Platform.native)
classpath.setFrom(kotlinTestJsClasspath)
noJdkLink.set(true) noJdkLink.set(true)
displayName.set("Native") displayName.set("Native")
dependsOn("common")
sourceRoots.from("$kotlin_native_root/runtime/src/main/kotlin/kotlin/test") sourceRoots.from("$kotlin_native_root/runtime/src/main/kotlin/kotlin/test")
} }
} }