blob: 5a208f2b17f7ab06718424356f4cf91903d6daae [file] [log] [blame]
/*
* 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) {}