11// Top-level build file where you can add configuration options common to all sub-projects/modules.
2- import com.android.build.gradle.LibraryExtension
32import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
43import org.jetbrains.dokka.gradle.DokkaMultiModuleTask
54import org.jetbrains.dokka.gradle.DokkaTaskPartial
6- import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
75import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
86
97buildscript {
@@ -64,6 +62,10 @@ subprojects {
6462 return @afterEvaluate
6563 }
6664
65+ tasks.withType<AbstractPublishToMaven >().configureEach {
66+ dependsOn(tasks.withType<Sign >())
67+ }
68+
6769 tasks.named<DokkaTaskPartial >(" dokkaHtmlPartial" ).configure {
6870 dokkaSourceSets.configureEach {
6971 reportUndocumented.set(true )
@@ -81,27 +83,27 @@ subprojects {
8183 archiveClassifier.set(" javadoc" )
8284 from(tasks.dokkaJavadoc.flatMap { it.outputDirectory })
8385 }
84- }
85-
86- afterEvaluate {
87- val androidExtension = extensions.findByType<LibraryExtension >()
88- val multiplatformExtension = extensions.findByType<KotlinMultiplatformExtension >()
8986
90- fun MavenPublication.configure () {
91- if (multiplatformExtension == null && androidExtension != null ) {
92- val androidSourcesJar by tasks.registering(Jar ::class ) {
93- archiveClassifier.set(" sources" )
94- from(androidExtension.sourceSets[" main" ].java.srcDirs)
95- }
96- artifact(androidSourcesJar.get())
97- from(components[" release" ])
87+ if (tasks.names.contains(" publishKotlinMultiplatformPublicationToMavenRepository" )) {
88+ tasks.named(" publishKotlinMultiplatformPublicationToMavenRepository" ).configure {
89+ dependsOn(" signJvmPublication" )
9890 }
91+ }
9992
100- artifact(tasks.named(" javadocJar" ).get())
93+ if (tasks.names.contains(" publishAndroidReleasePublicationToMavenRepository" )) {
94+ tasks.named(" publishAndroidReleasePublicationToMavenRepository" ).configure {
95+ dependsOn(" signJvmPublication" )
96+ }
97+ }
98+ }
10199
100+ afterEvaluate {
101+ fun MavenPublication.configure () {
102102 groupId = property(" GROUP" ).toString()
103103 version = property(" VERSION_NAME" ).toString()
104104
105+ artifact(tasks.named(" javadocJar" ).get())
106+
105107 pom {
106108 name.set(property(" POM_NAME" ).toString())
107109 description.set(property(" POM_DESCRIPTION" ).toString())
@@ -157,16 +159,8 @@ subprojects {
157159 }
158160 }
159161
160- if (multiplatformExtension != null ) {
161- publications.withType<MavenPublication >().configureEach {
162- configure()
163- }
164- } else if (androidExtension != null ) {
165- // Add publications for Android libraries.
166- // KMP libraries already have MavenPublications that are added by multiplatform plugin
167- publications.register<MavenPublication >(" release" ) {
168- afterEvaluate { configure() }
169- }
162+ publications.withType<MavenPublication >().configureEach {
163+ configure()
170164 }
171165 }
172166
0 commit comments