1+ import com.android.build.api.dsl.CommonExtension
12import com.vanniktech.maven.publish.AndroidSingleVariantLibrary
3+ import com.vanniktech.maven.publish.JavadocJar
24import com.vanniktech.maven.publish.MavenPublishBaseExtension
3- import org.jetbrains.dokka.gradle.DokkaTask
5+ import com.vanniktech.maven.publish.SourcesJar
6+ import org.jetbrains.dokka.gradle.DokkaExtension
7+ import org.jetbrains.dokka.gradle.engine.plugins.DokkaHtmlPluginParameters
48import org.jetbrains.kotlin.gradle.dsl.JvmTarget
59import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
610
711plugins {
812 alias(libs.plugins.android.application) apply false
913 alias(libs.plugins.android.library) apply false
10- alias(libs.plugins.kotlin.android) apply false
1114 alias(libs.plugins.kotlin.dokka) apply false
1215 alias(libs.plugins.maven.publish) apply false
1316}
1417
18+ val androidApplicationPluginId = libs.plugins.android.application.get().pluginId
19+ val androidLibraryPluginId = libs.plugins.android.library.get().pluginId
20+ val dokkaPluginId = libs.plugins.kotlin.dokka.get().pluginId
21+
22+ allprojects {
23+ fun Project.configureAndroidJvm () {
24+ configure<CommonExtension > {
25+ compileOptions.sourceCompatibility = JavaVersion .VERSION_17
26+ compileOptions.targetCompatibility = JavaVersion .VERSION_17
27+ }
28+ }
29+
30+ plugins.withId(androidLibraryPluginId) {
31+ configureAndroidJvm()
32+ }
33+
34+ plugins.withId(androidApplicationPluginId) {
35+ configureAndroidJvm()
36+ }
37+
38+ tasks.withType<KotlinJvmCompile >().configureEach {
39+ compilerOptions {
40+ jvmTarget = JvmTarget .JVM_17
41+ freeCompilerArgs.addAll(
42+ " -Xno-param-assertions" ,
43+ " -Xno-call-assertions" ,
44+ " -Xno-receiver-assertions"
45+ )
46+ }
47+ }
48+ }
49+
1550libraryProjects {
1651 afterEvaluate {
1752 configure<PublishingExtension > {
@@ -32,41 +67,34 @@ libraryProjects {
3267 }
3368
3469 configure<MavenPublishBaseExtension > {
35- configure(AndroidSingleVariantLibrary (publishJavadocJar = false ))
70+ configure(AndroidSingleVariantLibrary (JavadocJar . None (), SourcesJar . Sources () ))
3671 }
3772 }
3873
39- tasks.withType<DokkaTask >().configureEach {
40- val configuration = """ { "footerMessage": "PanguText | Apache-2.0 License | Copyright (C) 2019 HighCapable" }"""
41- pluginsMapConfiguration.set(mapOf (" org.jetbrains.dokka.base.DokkaBase" to configuration))
42- }
43-
44- tasks.register(" publishKDoc" ) {
45- group = " documentation"
46- dependsOn(" dokkaHtml" )
74+ plugins.withId(dokkaPluginId) {
75+ configure<DokkaExtension > {
76+ dokkaPublications.named(" html" ) {
77+ outputDirectory.set(layout.buildDirectory.dir(" dokka/html" ))
78+ }
79+ pluginsConfiguration.withType<DokkaHtmlPluginParameters >().configureEach {
80+ footerMessage.set(" PanguText | Apache-2.0 License | Copyright (C) 2019 HighCapable" )
81+ }
82+ }
4783
48- doLast {
49- val docsDir = rootProject.projectDir
50- .resolve(" docs-source" )
51- .resolve(" dist" )
52- .resolve(" KDoc" )
53- .resolve(project.name)
84+ tasks.register(" publishKDoc" ) {
85+ group = " documentation"
86+ dependsOn(" dokkaGeneratePublicationHtml" )
5487
55- if (docsDir.exists()) docsDir.deleteRecursively() else docsDir.mkdirs()
56- layout.buildDirectory.dir(" dokka/html" ).get().asFile.copyRecursively(docsDir)
57- }
58- }
59- }
88+ doLast {
89+ val docsDir = rootProject.projectDir
90+ .resolve(" docs-source" )
91+ .resolve(" dist" )
92+ .resolve(" KDoc" )
93+ .resolve(project.name)
6094
61- allprojects {
62- tasks.withType<KotlinJvmCompile >().configureEach {
63- compilerOptions {
64- jvmTarget = JvmTarget .JVM_17
65- freeCompilerArgs.addAll(
66- " -Xno-param-assertions" ,
67- " -Xno-call-assertions" ,
68- " -Xno-receiver-assertions"
69- )
95+ if (docsDir.exists()) docsDir.deleteRecursively() else docsDir.mkdirs()
96+ layout.buildDirectory.dir(" dokka/html" ).get().asFile.copyRecursively(docsDir)
97+ }
7098 }
7199 }
72100}
0 commit comments