Skip to content

Commit f121dc0

Browse files
committed
dokka task added.
1 parent 16579a8 commit f121dc0

13 files changed

Lines changed: 116 additions & 16 deletions

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ plugins {
66
alias(libs.plugins.kotlin.compose.compiler) apply false
77
alias(libs.plugins.builtin.kotlin) apply false
88
alias(libs.plugins.legacy.kapt) apply false
9+
alias(libs.plugins.dokka.javadoc) apply false
10+
alias(libs.plugins.dokka.html) apply false
911
}
1012

1113
tasks.register<Delete>("clean") {

compose/build.gradle.kts

Lines changed: 105 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import com.android.build.api.dsl.LibraryExtension
2-
import org.gradle.kotlin.dsl.assign
32
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
43

54
// Module :library
@@ -8,6 +7,8 @@ plugins {
87
alias(libs.plugins.kotlin.compose.compiler)
98
alias(libs.plugins.builtin.kotlin)
109
alias(libs.plugins.legacy.kapt)
10+
alias(libs.plugins.dokka.html)
11+
alias(libs.plugins.dokka.javadoc)
1112
id("maven-publish")
1213
}
1314

@@ -22,6 +23,10 @@ kotlin {
2223
}
2324
}
2425

26+
kapt {
27+
generateStubs = true
28+
}
29+
2530
composeCompiler {
2631
reportsDestination = layout.buildDirectory.dir("compose_compiler")
2732
}
@@ -55,7 +60,7 @@ configure<LibraryExtension> {
5560

5661
buildTypes {
5762
debug {
58-
// it breaks the data-binding, eg. when running ./gradlew :library:publishToMavenLocal
63+
// it breaks the data-binding, e.g. when running ./gradlew :library:publishToMavenLocal
5964
enableAndroidTestCoverage = false
6065
isMinifyEnabled = false
6166
}
@@ -106,6 +111,104 @@ dependencies {
106111

107112
/* Composable Preview */
108113
debugImplementation(libs.bundles.androidx.compose.tooling)
114+
115+
dokkaPlugin(libs.dokka.android.documentation.plugin)
116+
}
117+
118+
// Dokka generation
119+
dokka {
120+
121+
dokkaSourceSets.create("main") {
122+
123+
val sdkComponents = androidComponents::sdkComponents.get()
124+
val sdkDirectory: Directory? = sdkComponents.sdkDirectory.get()
125+
val compileSdk = project.extensions.getByType<LibraryExtension>().compileSdk
126+
127+
sourceRoots.from(
128+
files(File("${sdkDirectory}/platforms/${compileSdk}/android.jar")),
129+
"${projectDir.absolutePath}/src/main/java"
130+
)
131+
132+
sourceLink {
133+
localDirectory.set(file("src/main/java"))
134+
remoteUrl("https://github.com/syslogic/androidx-colorpicker/tree/master/compose/src/main/java")
135+
remoteLineSuffix.set("#L")
136+
}
137+
}
138+
139+
dokkaSourceSets.configureEach {
140+
141+
enableJdkDocumentationLink.set(true)
142+
enableKotlinStdLibDocumentationLink.set(true)
143+
enableAndroidDocumentationLink.set(true)
144+
jdkVersion.set(17)
145+
146+
dokkaPublications.javadoc {
147+
moduleName.set(project.name)
148+
moduleVersion.set(project.version.toString())
149+
outputDirectory.set(layout.buildDirectory.dir("dokka/javadoc"))
150+
}
151+
dokkaPublications.html {
152+
moduleName.set(project.name)
153+
moduleVersion.set(project.version.toString())
154+
outputDirectory.set(layout.buildDirectory.dir("dokka/html"))
155+
}
156+
}
157+
}
158+
159+
val dokkaGenerateJavadocJar by tasks.registering(Jar::class) {
160+
group = "dokka"
161+
dependsOn(tasks.dokkaGeneratePublicationJavadoc)
162+
from(tasks.dokkaGeneratePublicationJavadoc.flatMap { it.outputDirectory })
163+
archiveClassifier.set("javadoc")
164+
description = "Assembles a JAR containing the Javadoc-style documentation generated by Dokka."
165+
}
166+
167+
val dokkaGenerateHtmlJar by tasks.registering(Jar::class) {
168+
group = "dokka"
169+
dependsOn(tasks.dokkaGeneratePublicationHtml)
170+
from(tasks.dokkaGeneratePublicationHtml.flatMap { it.outputDirectory })
171+
archiveClassifier.set("html-docs")
172+
description = "Assembles a JAR containing the HTML documentation generated by Dokka."
173+
}
174+
175+
val dokkaCleanJavadoc by tasks.registering(Delete::class) {
176+
group = "dokka"
177+
delete = setOf(project.file("build/dokka/javadoc"))
178+
description = "It removes the documentation generated by Dokka."
179+
}
180+
181+
val dokkaCleanHtml by tasks.registering(Delete::class) {
182+
group = "dokka"
183+
delete = setOf(project.file("build/dokka/html"))
184+
description = "It removes the documentation generated by Dokka."
185+
}
186+
187+
// tasks.dokkaGeneratePublicationJavadoc.dependsOn(dokkaCleanJavadoc)
188+
// tasks.dokkaGeneratePublicationHtml.dependsOn(dokkaCleanHtml)
189+
190+
val dokkaClean by tasks.registering {
191+
group = "dokka"
192+
dependsOn(dokkaCleanJavadoc, dokkaCleanHtml)
193+
}
194+
195+
val sourcesJar by tasks.registering(Jar::class) {
196+
archiveClassifier.set("sources")
197+
from(project.file("src/main/java"))
198+
}
199+
200+
// Gradle 9.1 deprecation fix
201+
configurations {
202+
@Suppress("UnstableApiUsage")
203+
consumable("jars") {
204+
outgoing.artifact(dokkaGenerateJavadocJar)
205+
outgoing.artifact(sourcesJar)
206+
}
207+
}
208+
209+
tasks.named("assemble") {
210+
dependsOn(dokkaGenerateJavadocJar)
211+
dependsOn(sourcesJar)
109212
}
110213

111214
group = "io.syslogic"

compose/src/main/java/io/syslogic/colorpicker/compose/AlphaPainter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.compose.ui.graphics.painter.Painter
1313

1414
/**
1515
* Jetpack Compose Alpha Painter
16-
*
1716
* @author Martin Zeitler
1817
*/
1918
class AlphaPainter(intrinsicSize: Size) : BasePainter(intrinsicSize) {

compose/src/main/java/io/syslogic/colorpicker/compose/BasePainter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import kotlin.properties.Delegates
1515

1616
/**
1717
* Jetpack Compose Base Painter
18-
*
1918
* @author Martin Zeitler
2019
*/
2120
abstract class BasePainter(override val intrinsicSize: Size) : Painter() {

compose/src/main/java/io/syslogic/colorpicker/compose/ColorPainter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import androidx.compose.ui.graphics.painter.Painter
1010

1111
/**
1212
* Jetpack Compose Color Painter
13-
*
1413
* @author Martin Zeitler
1514
*/
1615
class ColorPainter(intrinsicSize: Size) : BasePainter(intrinsicSize) {

compose/src/main/java/io/syslogic/colorpicker/compose/ColorPickerDialogPreview.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import androidx.compose.ui.tooling.preview.Preview
99

1010
/**
1111
* ColorPickerDialog Preview
12-
*
1312
* @author Martin Zeitler
1413
*/
1514
@Preview(

compose/src/main/java/io/syslogic/colorpicker/compose/ColorPickerPreview.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.compose.ui.tooling.preview.Preview
77

88
/**
99
* ColorPicker Preview
10-
*
1110
* @author Martin Zeitler
1211
*/
1312
@Preview(

compose/src/main/java/io/syslogic/colorpicker/compose/HuePainter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.compose.ui.graphics.painter.Painter
1313

1414
/**
1515
* Jetpack Compose Hue Painter
16-
*
1716
* @author Martin Zeitler
1817
*/
1918
class HuePainter(intrinsicSize: Size) : BasePainter(intrinsicSize) {

compose/src/main/java/io/syslogic/colorpicker/compose/LayoutId.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package io.syslogic.colorpicker.compose
22

33
/**
44
* Jetpack Compose Layout Ids
5-
*
65
* @author Martin Zeitler
76
*/
87
enum class LayoutId {

compose/src/main/java/io/syslogic/colorpicker/compose/OnColorChangedListener.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.syslogic.colorpicker.compose
22

33
/**
4-
* OnColorChangedListener.
4+
* OnColorChangedListener
55
* @author Martin Zeitler
66
*/
77
interface OnColorChangedListener {

0 commit comments

Comments
 (0)