blob: 2470ded3eaa6b6320f27e6364bfc53db9aff7aee [file] [log] [blame]
Vsevolod Tolstopyatovbcbcd162021-07-06 14:29:27 +03001import org.jetbrains.dokka.gradle.*
2import 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
9apply<DokkaPlugin>()
10//apply<JavaPlugin>()
11
12fun 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
21val knit_version: String by project
22tasks.withType(DokkaTaskPartial::class).configureEach {
23 dependencies {
24 plugins("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version")
25 }
26}
27
28tasks.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 Elliottca095be2022-07-25 14:26:10 +000040 if (!project.isMultiplatform) {
Vsevolod Tolstopyatovbcbcd162021-07-06 14:29:27 +030041 dependsOn(project.configurations["compileClasspath"])
Vsevolod Tolstopyatovbcbcd162021-07-06 14:29:27 +030042 }
43 }
44}
45
46if (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 Tolstopyatovbcbcd162021-07-06 14:29:27 +030065 }
66 }
67}