| /* |
| * Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. |
| */ |
| |
| // Configures generation of JavaDoc & Dokka artifacts |
| |
| def makeLinkMapping(dokka, projectDir) { |
| dokka.linkMapping { |
| def relPath = rootProject.projectDir.toPath().relativize(projectDir.toPath()) |
| dir = "$projectDir/src" |
| url = "https://github.com/kotlin/kotlinx.coroutines/tree/master/$relPath/src" |
| suffix = "#L" |
| } |
| } |
| |
| configurations { |
| dokkaStubs.extendsFrom compileOnly |
| configureKotlinJvmPlatform(dokkaStubs) |
| } |
| |
| apply plugin: 'org.jetbrains.dokka' |
| |
| tasks.withType(dokka.getClass()) { |
| jdkVersion = 8 |
| includes = ['README.md'] |
| } |
| |
| dependencies { |
| dokkaStubs project(":stdlib-stubs") |
| } |
| |
| |
| dokka { |
| kotlinTasks { [] } |
| outputFormat = 'kotlin-website' |
| dependsOn(project.configurations.dokkaStubs) |
| |
| if (project.name != "kotlinx-coroutines-core") { |
| dependsOn(project.configurations.compileClasspath) |
| dependsOn(project.sourceSets.main.output) |
| doFirst { |
| // resolve classpath only during execution |
| classpath = project.configurations.dokkaStubs.files + project.configurations.compileClasspath.files + project.sourceSets.main.output.files |
| } |
| } |
| } |
| |
| if (project.name == "kotlinx-coroutines-core") { |
| // Custom configuration for MPP modules |
| dependencies { |
| dokkaStubs project(":js-stub") // so that JS library reference can resolve properly |
| dokkaStubs project(":kotlinx-coroutines-core") |
| } |
| |
| dokka { |
| kotlinTasks { [] } |
| suppressedModifiers = ['actual'] |
| makeLinkMapping(it, projectDir) |
| makeLinkMapping(it, project.file("js")) |
| makeLinkMapping(it, project.file("jvm")) |
| makeLinkMapping(it, project.file("native")) |
| makeLinkMapping(it, project.file("common")) |
| // source roots |
| impliedPlatforms = ['JVM', 'JS', 'Native'] |
| sourceRoot { |
| path = rootProject.file("$project.name/common/src") |
| } |
| sourceRoot { |
| path = rootProject.file("$project.name/jvm/src") |
| platforms = ['JVM'] |
| } |
| sourceRoot { |
| path = rootProject.file("$project.name/js/src") |
| platforms = ['JS'] |
| } |
| sourceRoot { |
| path = rootProject.file("$project.name/native/src") |
| platforms = ['Native'] |
| } |
| doFirst { |
| classpath = project.configurations.dokkaStubs.files + |
| project.configurations.jvmCompileClasspath.files + |
| project.kotlin.targets.jvm.compilations.main.output.allOutputs |
| } |
| } |
| } |