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 GradleDokkaSourceSetBuildernull12fun 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>null22tasks.withType(DokkaTaskPartial::class).configureEach { 23 dependencies { 24 plugins("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version") 25 } 26 } 27 <lambda>null28tasks.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