Vsevolod Tolstopyatov | bcbcd16 | 2021-07-06 14:29:27 +0300 | [diff] [blame] | 1 | import org.jetbrains.dokka.gradle.* |
| 2 | import java.net.* |
| 3 | |
| 4 | /* |
| 5 | * Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. |
| 6 | */ |
| 7 | |
| 8 | // Configures generation of JavaDoc & Dokka artifacts |
| 9 | apply<DokkaPlugin>() |
| 10 | //apply<JavaPlugin>() |
| 11 | |
| 12 | fun GradleDokkaSourceSetBuilder.makeLinkMapping(projectDir: File) { |
| 13 | sourceLink { |
| 14 | val relPath = rootProject.projectDir.toPath().relativize(projectDir.toPath()) |
| 15 | localDirectory.set(projectDir.resolve("src")) |
| 16 | remoteUrl.set(URL("https://github.com/kotlin/kotlinx.coroutines/tree/master/$relPath/src")) |
| 17 | remoteLineSuffix.set("#L") |
| 18 | } |
| 19 | } |
| 20 | |
| 21 | val knit_version: String by project |
| 22 | tasks.withType(DokkaTaskPartial::class).configureEach { |
| 23 | dependencies { |
| 24 | plugins("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version") |
| 25 | } |
| 26 | } |
| 27 | |
| 28 | tasks.withType(DokkaTaskPartial::class).configureEach { |
| 29 | suppressInheritedMembers.set(true) |
| 30 | dokkaSourceSets.configureEach { |
| 31 | jdkVersion.set(11) |
| 32 | includes.from("README.md") |
| 33 | noStdlibLink.set(true) |
| 34 | |
| 35 | externalDocumentationLink { |
| 36 | url.set(URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) |
| 37 | packageListUrl.set(rootProject.projectDir.toPath().resolve("site/stdlib.package.list").toUri().toURL()) |
| 38 | } |
| 39 | |
Steve Elliott | ca095be | 2022-07-25 14:26:10 +0000 | [diff] [blame] | 40 | if (!project.isMultiplatform) { |
Vsevolod Tolstopyatov | bcbcd16 | 2021-07-06 14:29:27 +0300 | [diff] [blame] | 41 | dependsOn(project.configurations["compileClasspath"]) |
Vsevolod Tolstopyatov | bcbcd16 | 2021-07-06 14:29:27 +0300 | [diff] [blame] | 42 | } |
| 43 | } |
| 44 | } |
| 45 | |
| 46 | if (project.name == "kotlinx-coroutines-core") { |
| 47 | // Custom configuration for MPP modules |
| 48 | tasks.withType(DokkaTaskPartial::class).configureEach { |
| 49 | dokkaSourceSets { |
| 50 | val commonMain by getting { |
| 51 | makeLinkMapping(project.file("common")) |
| 52 | } |
| 53 | |
| 54 | val nativeMain by getting { |
| 55 | makeLinkMapping(project.file("native")) |
| 56 | } |
| 57 | |
| 58 | val jsMain by getting { |
| 59 | makeLinkMapping(project.file("js")) |
| 60 | } |
| 61 | |
| 62 | val jvmMain by getting { |
| 63 | makeLinkMapping(project.file("jvm")) |
| 64 | } |
Vsevolod Tolstopyatov | bcbcd16 | 2021-07-06 14:29:27 +0300 | [diff] [blame] | 65 | } |
| 66 | } |
| 67 | } |