• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
GradleDokkaSourceSetBuildernull12 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
<lambda>null22 tasks.withType(DokkaTaskPartial::class).configureEach {
23     dependencies {
24         plugins("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version")
25     }
26 }
27 
<lambda>null28 tasks.withType(DokkaTaskPartial::class).configureEach {
29     suppressInheritedMembers.set(true)
30     pluginsMapConfiguration.set(mapOf("org.jetbrains.dokka.base.DokkaBase" to """{ "templatesDir" : "${rootProject.projectDir.toString().replace('\\', '/')}/dokka-templates" }"""))
31 
32     dokkaSourceSets.configureEach {
33         jdkVersion.set(11)
34         includes.from("README.md")
35         noStdlibLink.set(true)
36 
37         externalDocumentationLink {
38             url.set(URL("https://kotlinlang.org/api/latest/jvm/stdlib/"))
39             packageListUrl.set(rootProject.projectDir.toPath().resolve("site/stdlib.package.list").toUri().toURL())
40         }
41 
42         if (!project.isMultiplatform) {
43             dependsOn(project.configurations["compileClasspath"])
44         }
45     }
46 }
47 
48 if (project.name == "kotlinx-coroutines-core") {
49     // Custom configuration for MPP modules
<lambda>null50     tasks.withType(DokkaTaskPartial::class).configureEach {
51         dokkaSourceSets {
52             val commonMain by getting {
53                 makeLinkMapping(project.file("common"))
54             }
55 
56             val nativeMain by getting {
57                 makeLinkMapping(project.file("native"))
58             }
59 
60             val jsMain by getting {
61                 makeLinkMapping(project.file("js"))
62             }
63 
64             val jvmMain by getting {
65                 makeLinkMapping(project.file("jvm"))
66             }
67         }
68     }
69 }
70