From 435e34fe4d63b85ec8f93155153eda0ea2303d73 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Wed, 3 Jun 2020 11:13:02 +0200 Subject: Implement Project.dokka extension to align kotlin and groovey dokka configuration --- runners/gradle-plugin/build.gradle.kts | 2 ++ .../kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt | 8 +++++++- .../gradle/KotlinDslDokkaTaskConfigurationTest.kt | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt (limited to 'runners/gradle-plugin') diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index df4a8738..d2e9eccd 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -16,6 +16,8 @@ dependencies { compileOnly("com.android.tools.build:builder-model:3.0.0") compileOnly(gradleApi()) compileOnly(gradleKotlinDsl()) + testImplementation(gradleApi()) + testImplementation(kotlin("test-junit")) constraints { val kotlin_version: String by project compileOnly("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}") { diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt index d72ec0f9..2de95493 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt @@ -341,4 +341,10 @@ open class DokkaTask : DefaultTask(), Configurable { null } } -} \ No newline at end of file +} + +fun Project.dokka(configuration: DokkaTask.() -> Unit) { + tasks.withType(DokkaTask::class.java) { dokkaTask -> + dokkaTask.configuration() + } +} diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt new file mode 100644 index 00000000..0b80f4a2 --- /dev/null +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt @@ -0,0 +1,19 @@ +package org.jetbrains.dokka.gradle + +import org.gradle.testfixtures.ProjectBuilder +import kotlin.test.Test +import kotlin.test.assertEquals + +class KotlinDslDokkaTaskConfigurationTest { + + @Test + fun `configure project using dokka extension function`() { + val project = ProjectBuilder.builder().build() + project.plugins.apply("org.jetbrains.dokka") + project.dokka { this.outputFormat = "test" } + + project.tasks.withType(DokkaTask::class.java).forEach { dokkaTask -> + assertEquals("test", dokkaTask.outputFormat) + } + } +} -- cgit