| /* |
| * 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) {} |