blob: 0f83436382eb44af1fed76c427edd8af567a0c14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package org.jetbrains.dokka.dokkatoo.adapters
import org.jetbrains.dokka.dokkatoo.DokkatooExtension
import org.jetbrains.dokka.dokkatoo.internal.DokkatooInternalApi
import javax.inject.Inject
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.logging.Logging
import org.gradle.api.plugins.JavaBasePlugin
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.kotlin.dsl.*
/**
* Apply Java specific configuration to the Dokkatoo plugin.
*
* **Must be applied *after* [org.jetbrains.dokka.dokkatoo.DokkatooBasePlugin]**
*/
@DokkatooInternalApi
abstract class DokkatooJavaAdapter @Inject constructor() : Plugin<Project> {
private val logger = Logging.getLogger(this::class.java)
override fun apply(project: Project) {
logger.info("applied DokkatooJavaAdapter to ${project.path}")
// wait for the Java plugin to be applied
project.plugins.withType<JavaBasePlugin>().configureEach {
// fetch the toolchain, and use the language version as Dokka's jdkVersion
val toolchainLanguageVersion = project.extensions.getByType<JavaPluginExtension>()
.toolchain
.languageVersion
val dokka = project.extensions.getByType<DokkatooExtension>()
dokka.dokkatooSourceSets.configureEach {
jdkVersion.set(toolchainLanguageVersion.map { it.asInt() }.orElse(8))
}
}
}
}
|