xref: /aosp_15_r20/external/kotlinx.serialization/gradle/dokka.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1*57b5a4a6SAndroid Build Coastguard Worker/*
2*57b5a4a6SAndroid Build Coastguard Worker * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3*57b5a4a6SAndroid Build Coastguard Worker */
4*57b5a4a6SAndroid Build Coastguard Worker
5*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'kotlin'
6*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'org.jetbrains.dokka'
7*57b5a4a6SAndroid Build Coastguard Worker
8*57b5a4a6SAndroid Build Coastguard Workerdef documentedSubprojects = ["kotlinx-serialization-core",
9*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-json",
10*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-json-okio",
11*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-cbor",
12*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-properties",
13*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-hocon",
14*57b5a4a6SAndroid Build Coastguard Worker                             "kotlinx-serialization-protobuf"]
15*57b5a4a6SAndroid Build Coastguard Worker
16*57b5a4a6SAndroid Build Coastguard Workersubprojects {
17*57b5a4a6SAndroid Build Coastguard Worker    if (!(name in documentedSubprojects)) return
18*57b5a4a6SAndroid Build Coastguard Worker    apply plugin: 'org.jetbrains.dokka'
19*57b5a4a6SAndroid Build Coastguard Worker    dependencies {
20*57b5a4a6SAndroid Build Coastguard Worker        dokkaPlugin("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version")
21*57b5a4a6SAndroid Build Coastguard Worker    }
22*57b5a4a6SAndroid Build Coastguard Worker
23*57b5a4a6SAndroid Build Coastguard Worker    tasks.named('dokkaHtmlPartial') {
24*57b5a4a6SAndroid Build Coastguard Worker        outputDirectory = file("build/dokka")
25*57b5a4a6SAndroid Build Coastguard Worker        pluginsMapConfiguration.set(["org.jetbrains.dokka.base.DokkaBase": """{ "templatesDir": "${rootProject.projectDir.toString().replace('\\', '/')}/dokka-templates" }"""])
26*57b5a4a6SAndroid Build Coastguard Worker
27*57b5a4a6SAndroid Build Coastguard Worker        dokkaSourceSets {
28*57b5a4a6SAndroid Build Coastguard Worker            configureEach {
29*57b5a4a6SAndroid Build Coastguard Worker                includes.from(rootProject.file('dokka/moduledoc.md').path)
30*57b5a4a6SAndroid Build Coastguard Worker
31*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
32*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("kotlinx\\.serialization(\$|\\.).*")
33*57b5a4a6SAndroid Build Coastguard Worker                    reportUndocumented.set(true)
34*57b5a4a6SAndroid Build Coastguard Worker                    skipDeprecated.set(true)
35*57b5a4a6SAndroid Build Coastguard Worker                }
36*57b5a4a6SAndroid Build Coastguard Worker
37*57b5a4a6SAndroid Build Coastguard Worker                // Internal API
38*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
39*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("kotlinx\\.serialization.internal(\$|\\.).*")
40*57b5a4a6SAndroid Build Coastguard Worker                    suppress.set(true)
41*57b5a4a6SAndroid Build Coastguard Worker                }
42*57b5a4a6SAndroid Build Coastguard Worker
43*57b5a4a6SAndroid Build Coastguard Worker                // Internal JSON API
44*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
45*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("kotlinx\\.serialization.json.internal(\$|\\.).*")
46*57b5a4a6SAndroid Build Coastguard Worker                    suppress.set(true)
47*57b5a4a6SAndroid Build Coastguard Worker                    reportUndocumented.set(false)
48*57b5a4a6SAndroid Build Coastguard Worker                }
49*57b5a4a6SAndroid Build Coastguard Worker
50*57b5a4a6SAndroid Build Coastguard Worker                // Workaround for typealias
51*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
52*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("kotlinx\\.serialization.protobuf.internal(\$|\\.).*")
53*57b5a4a6SAndroid Build Coastguard Worker                    suppress.set(true)
54*57b5a4a6SAndroid Build Coastguard Worker                    reportUndocumented.set(false)
55*57b5a4a6SAndroid Build Coastguard Worker                }
56*57b5a4a6SAndroid Build Coastguard Worker
57*57b5a4a6SAndroid Build Coastguard Worker                // Deprecated migrations
58*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
59*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("kotlinx\\.protobuf(\$|\\.).*")
60*57b5a4a6SAndroid Build Coastguard Worker                    reportUndocumented.set(true)
61*57b5a4a6SAndroid Build Coastguard Worker                    skipDeprecated.set(true)
62*57b5a4a6SAndroid Build Coastguard Worker                }
63*57b5a4a6SAndroid Build Coastguard Worker
64*57b5a4a6SAndroid Build Coastguard Worker                // Deprecated migrations
65*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
66*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("org\\.jetbrains\\.kotlinx\\.serialization\\.config(\$|\\.).*")
67*57b5a4a6SAndroid Build Coastguard Worker                    reportUndocumented.set(false)
68*57b5a4a6SAndroid Build Coastguard Worker                    skipDeprecated.set(true)
69*57b5a4a6SAndroid Build Coastguard Worker                }
70*57b5a4a6SAndroid Build Coastguard Worker
71*57b5a4a6SAndroid Build Coastguard Worker                // JS/Native implementation of JVM-only `org.intellij.lang.annotations.Language` class to add syntax support by IDE.
72*57b5a4a6SAndroid Build Coastguard Worker                perPackageOption {
73*57b5a4a6SAndroid Build Coastguard Worker                    matchingRegex.set("org\\.intellij\\.lang\\.annotations(\$|\\.).*")
74*57b5a4a6SAndroid Build Coastguard Worker                    suppress.set(true)
75*57b5a4a6SAndroid Build Coastguard Worker                }
76*57b5a4a6SAndroid Build Coastguard Worker
77*57b5a4a6SAndroid Build Coastguard Worker                sourceLink {
78*57b5a4a6SAndroid Build Coastguard Worker                    localDirectory.set(rootDir)
79*57b5a4a6SAndroid Build Coastguard Worker                    remoteUrl.set(new URL("https://github.com/Kotlin/kotlinx.serialization/tree/master"))
80*57b5a4a6SAndroid Build Coastguard Worker                    remoteLineSuffix.set("#L")
81*57b5a4a6SAndroid Build Coastguard Worker                }
82*57b5a4a6SAndroid Build Coastguard Worker            }
83*57b5a4a6SAndroid Build Coastguard Worker        }
84*57b5a4a6SAndroid Build Coastguard Worker    }
85*57b5a4a6SAndroid Build Coastguard Worker}
86*57b5a4a6SAndroid Build Coastguard Worker
87*57b5a4a6SAndroid Build Coastguard Worker// Knit relies on Dokka task and it's pretty convenient
88*57b5a4a6SAndroid Build Coastguard Workertask dokka(dependsOn: dokkaHtmlMultiModule) {}
89