• 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     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 
40         if (!project.isMultiplatform) {
41             dependsOn(project.configurations["compileClasspath"])
42         }
43     }
44 }
45 
46 if (project.name == "kotlinx-coroutines-core") {
47     // Custom configuration for MPP modules
<lambda>null48     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             }
65         }
66     }
67 }
68