/* * Copyright 2016-2020 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) noStdlibLink = true externalDocumentationLink { packageListUrl = rootProject.projectDir.toPath().resolve("site/stdlib.package.list").toUri().toURL() url = new URL("https://kotlinlang.org/api/latest/jvm/stdlib/") } 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 } } }