diff --git a/buildSrc/src/main/kotlin/Publications.kt b/buildSrc/src/main/kotlin/Publications.kt index 46c3e3482..0c40656bf 100644 --- a/buildSrc/src/main/kotlin/Publications.kt +++ b/buildSrc/src/main/kotlin/Publications.kt @@ -6,6 +6,7 @@ import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencySet import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.bundling.Jar import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.register @@ -73,6 +74,30 @@ fun MavenPublication.addSourcesAndJavadoc(project: Project) { artifact(project.tasks["dokkaJavadocJar"]) } +fun MavenPublication.addSourcesAndJavadoc( + project: Project, sourceSet: SourceSet, + name: String, artifactName: String +) { + val sourcesJarTask = project.tasks.register("$name-sources-jar") { + archiveBaseName.set(artifactName) + archiveClassifier.set("sources") + from(sourceSet.allSource) + } + + val javaDocJarTask = project.tasks.register("$name-javadoc-jar") { + archiveBaseName.set(artifactName) + archiveClassifier.set("javadoc") + + val javaDocTask = project.tasks["dokkaJavadocJar"] + dependsOn(javaDocTask) + + from(javaDocTask.outputs) + } + + artifact(sourcesJarTask.get()) + artifact(javaDocJarTask.get()) +} + fun MavenPublication.addEmptyArtifact(project: Project): Unit = with(project) { artifact(generateEmptyJar()) artifact(generateEmptyJar("sources")) diff --git a/ksmt-bitwuzla/ksmt-bitwuzla-native/build.gradle.kts b/ksmt-bitwuzla/ksmt-bitwuzla-native/build.gradle.kts index 9657013ab..15532abde 100644 --- a/ksmt-bitwuzla/ksmt-bitwuzla-native/build.gradle.kts +++ b/ksmt-bitwuzla/ksmt-bitwuzla-native/build.gradle.kts @@ -48,19 +48,12 @@ bitwuzlaBinaries.entries.forEach { (sourceSet, nativeConfig) -> copyArtifactsIntoJar(nativeConfig, this, "lib/$systemArch/bitwuzla") } - val sourcesJarTask = tasks.register("$name-sources-jar") { - archiveBaseName.set(artifactName) - archiveClassifier.set("sources") - from(sourceSet.allSource) - } - publishing.publications { register("maven-$name") { artifactId = artifactName artifact(jarTask.get()) - artifact(sourcesJarTask.get()) - artifact(project.tasks["dokkaJavadocJar"]) + addSourcesAndJavadoc(project, sourceSet, name, artifactName) addKsmtPom() signKsmtPublication(project) diff --git a/ksmt-cvc5/ksmt-cvc5-native/build.gradle.kts b/ksmt-cvc5/ksmt-cvc5-native/build.gradle.kts index beb261bbc..d2db8dba0 100644 --- a/ksmt-cvc5/ksmt-cvc5-native/build.gradle.kts +++ b/ksmt-cvc5/ksmt-cvc5-native/build.gradle.kts @@ -54,19 +54,12 @@ cvc5Binaries.entries.forEach { (sourceSet, nativeConfig) -> copyArtifactsIntoJar(nativeConfig, this, "lib/$systemArch/cvc5") } - val sourcesJarTask = tasks.register("$name-sources-jar") { - archiveBaseName.set(artifactName) - archiveClassifier.set("sources") - from(sourceSet.allSource) - } - publishing.publications { register("maven-$name") { artifactId = artifactName artifact(jarTask.get()) - artifact(sourcesJarTask.get()) - artifact(project.tasks["dokkaJavadocJar"]) + addSourcesAndJavadoc(project, sourceSet, name, artifactName) addKsmtPom() signKsmtPublication(project) diff --git a/ksmt-yices/ksmt-yices-native/build.gradle.kts b/ksmt-yices/ksmt-yices-native/build.gradle.kts index e4b4cd211..2c58fed76 100644 --- a/ksmt-yices/ksmt-yices-native/build.gradle.kts +++ b/ksmt-yices/ksmt-yices-native/build.gradle.kts @@ -52,19 +52,12 @@ yicesBinaries.entries.forEach { (sourceSet, nativeConfig) -> copyArtifactsIntoJar(nativeConfig, this, "lib/$systemArch/yices") } - val sourcesJarTask = tasks.register("$name-sources-jar") { - archiveBaseName.set(artifactName) - archiveClassifier.set("sources") - from(sourceSet.allSource) - } - publishing.publications { register("maven-$name") { artifactId = artifactName artifact(jarTask.get()) - artifact(sourcesJarTask.get()) - artifact(project.tasks["dokkaJavadocJar"]) + addSourcesAndJavadoc(project, sourceSet, name, artifactName) addKsmtPom() signKsmtPublication(project) diff --git a/ksmt-z3/ksmt-z3-native/build.gradle.kts b/ksmt-z3/ksmt-z3-native/build.gradle.kts index cd6f1cdae..b7cf5f4f1 100644 --- a/ksmt-z3/ksmt-z3-native/build.gradle.kts +++ b/ksmt-z3/ksmt-z3-native/build.gradle.kts @@ -67,19 +67,12 @@ z3Binaries.forEach { (sourceSet, z3BinaryTask, nativeConfig) -> } } - val sourcesJarTask = tasks.register("$name-sources-jar") { - archiveBaseName.set(artifactName) - archiveClassifier.set("sources") - from(sourceSet.allSource) - } - publishing.publications { register("maven-$name") { artifactId = artifactName artifact(jarTask.get()) - artifact(sourcesJarTask.get()) - artifact(project.tasks["dokkaJavadocJar"]) + addSourcesAndJavadoc(project, sourceSet, name, artifactName) addKsmtPom() signKsmtPublication(project)