/* * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ apply plugin: 'kotlin' apply plugin: 'org.jetbrains.dokka' def documentedSubprojects = ["kotlinx-serialization-core", "kotlinx-serialization-json", "kotlinx-serialization-json-okio", "kotlinx-serialization-cbor", "kotlinx-serialization-properties", "kotlinx-serialization-hocon", "kotlinx-serialization-protobuf"] subprojects { if (!(name in documentedSubprojects)) return apply plugin: 'org.jetbrains.dokka' dependencies { dokkaPlugin("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version") } tasks.named('dokkaHtmlPartial') { outputDirectory = file("build/dokka") pluginsMapConfiguration.set(["org.jetbrains.dokka.base.DokkaBase": """{ "templatesDir": "${rootProject.projectDir.toString().replace('\\', '/')}/dokka-templates" }"""]) dokkaSourceSets { configureEach { includes.from(rootProject.file('dokka/moduledoc.md').path) perPackageOption { matchingRegex.set("kotlinx\\.serialization(\$|\\.).*") reportUndocumented.set(true) skipDeprecated.set(true) } // Internal API perPackageOption { matchingRegex.set("kotlinx\\.serialization.internal(\$|\\.).*") suppress.set(true) } // Internal JSON API perPackageOption { matchingRegex.set("kotlinx\\.serialization.json.internal(\$|\\.).*") suppress.set(true) reportUndocumented.set(false) } // Workaround for typealias perPackageOption { matchingRegex.set("kotlinx\\.serialization.protobuf.internal(\$|\\.).*") suppress.set(true) reportUndocumented.set(false) } // Deprecated migrations perPackageOption { matchingRegex.set("kotlinx\\.protobuf(\$|\\.).*") reportUndocumented.set(true) skipDeprecated.set(true) } // Deprecated migrations perPackageOption { matchingRegex.set("org\\.jetbrains\\.kotlinx\\.serialization\\.config(\$|\\.).*") reportUndocumented.set(false) skipDeprecated.set(true) } // JS/Native implementation of JVM-only `org.intellij.lang.annotations.Language` class to add syntax support by IDE. perPackageOption { matchingRegex.set("org\\.intellij\\.lang\\.annotations(\$|\\.).*") suppress.set(true) } sourceLink { localDirectory.set(rootDir) remoteUrl.set(new URL("https://github.com/Kotlin/kotlinx.serialization/tree/master")) remoteLineSuffix.set("#L") } } } } } // Knit relies on Dokka task and it's pretty convenient task dokka(dependsOn: dokkaHtmlMultiModule) {}