Skip to content

Commit 915080a

Browse files
committed
Use easy publishing plugin
1 parent b0fef93 commit 915080a

8 files changed

Lines changed: 67 additions & 208 deletions

File tree

build.gradle.kts

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
plugins {
22
id("java")
3-
id("maven-publish")
4-
id("signing")
3+
id("com.github.xpenatan.easy-publishing") version "-SNAPSHOT"
54
}
65

6+
LibExt.isRelease = rootProject.extra["easyPublishing.releaseRequested"] as Boolean
7+
78
buildscript {
89
repositories {
910
mavenCentral()
@@ -40,4 +41,47 @@ allprojects {
4041
}
4142
}
4243

43-
apply(plugin = "publish")
44+
easyPublishing {
45+
modules(
46+
":webgpu:core",
47+
":webgpu:shared:jni",
48+
":webgpu:shared:c",
49+
":webgpu:desktop:c",
50+
":webgpu:desktop:jni",
51+
":webgpu:desktop:ffm",
52+
":webgpu:web:wasm",
53+
":webgpu:android:jni",
54+
)
55+
56+
groupId.set(LibExt.groupId)
57+
releaseVersion.set(LibExt.releaseVersion)
58+
snapshotVersion.set(LibExt.snapshotVersion)
59+
60+
snapshotRepositoryUrl.set("https://central.sonatype.com/repository/maven-snapshots/")
61+
releaseRepositoryUrl.set("https://central.sonatype.com")
62+
username.set(providers.environmentVariable("CENTRAL_PORTAL_USERNAME"))
63+
password.set(providers.environmentVariable("CENTRAL_PORTAL_PASSWORD"))
64+
signingKey.set(providers.environmentVariable("SIGNING_KEY"))
65+
signingPassword.set(providers.environmentVariable("SIGNING_PASSWORD"))
66+
67+
pomName.set(LibExt.libName)
68+
pomDescription.set("WebGPU Java Bindings for wgpu-native and Dawn")
69+
projectUrl.set("https://github.com/xpenatan/jWebGPU")
70+
71+
developerId.set("Xpe")
72+
developerName.set("Natan")
73+
74+
scmUrl.set("https://github.com/xpenatan/jWebGPU")
75+
scmConnection.set("scm:git:https://github.com/xpenatan/jWebGPU.git")
76+
scmDeveloperConnection.set("scm:git:ssh://git@github.com/xpenatan/jWebGPU.git")
77+
}
78+
79+
afterEvaluate {
80+
// These projects share leaf names. Keep their Gradle component identities distinct while
81+
// their Maven publications continue to use the public jWebGPU group configured above.
82+
project(":webgpu:shared:jni").group = "${LibExt.groupId}.shared"
83+
project(":webgpu:desktop:jni").group = "${LibExt.groupId}.desktop"
84+
project(":webgpu:android:jni").group = "${LibExt.groupId}.android"
85+
project(":webgpu:shared:c").group = "${LibExt.groupId}.shared"
86+
project(":webgpu:desktop:c").group = "${LibExt.groupId}.desktop"
87+
}

buildSrc/src/main/kotlin/LibExt.kt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import java.io.File
2-
import java.util.*
2+
import java.util.Properties
33

44
object LibExt {
55
const val groupId = "com.github.xpenatan.jWebGPU"
66
const val libName = "jWebGPU"
7+
const val snapshotVersion = "-SNAPSHOT"
78
var isRelease = false
8-
var libVersion: String = ""
9+
val releaseVersion: String
10+
get() = readReleaseVersion()
11+
val libVersion: String
912
get() {
10-
return getVersion()
13+
return if(isRelease) releaseVersion else snapshotVersion
1114
}
1215

1316
const val javaMainTarget = "1.8"
@@ -24,21 +27,13 @@ object LibExt {
2427
const val exampleUseRepoLibs = false
2528
}
2629

27-
private fun getVersion(): String {
28-
var libVersion = "-SNAPSHOT"
30+
private fun readReleaseVersion(): String {
2931
val file = File("gradle.properties")
3032
if(file.exists()) {
3133
val properties = Properties()
3234
properties.load(file.inputStream())
33-
val version = properties.getProperty("version")
34-
if(LibExt.isRelease) {
35-
libVersion = version
36-
}
37-
}
38-
else {
39-
if(LibExt.isRelease) {
40-
throw RuntimeException("properties should exist")
41-
}
35+
return properties.getProperty("version")
36+
?: throw RuntimeException("version property should exist")
4237
}
43-
return libVersion
38+
throw RuntimeException("properties should exist")
4439
}

buildSrc/src/main/kotlin/publish.gradle.kts

Lines changed: 0 additions & 174 deletions
This file was deleted.

webgpu/core/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ publishing {
3434
publications {
3535
create<MavenPublication>("maven") {
3636
artifactId = moduleName
37-
group = LibExt.groupId
37+
groupId = LibExt.groupId
3838
version = LibExt.libVersion
3939
from(components["java"])
4040
}
4141
}
42-
}
42+
}

webgpu/desktop/c/build.gradle.kts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ fun isTaskRequested(taskName: String): Boolean {
148148

149149
val isStrictPublishTaskRequested = isTaskRequested("publish")
150150
|| isTaskRequested("publishRelease")
151-
|| isTaskRequested("publishTestRelease")
152-
|| isTaskRequested("uploadToMavenCentral")
153-
val isLocalPrepareReleaseDeploy = isTaskRequested("prepareReleaseDeploy") && !isStrictPublishTaskRequested
151+
val isLocalPrepareRelease = isTaskRequested("prepareRelease") && !isStrictPublishTaskRequested
154152

155153
val nativeJars = nativeJarSpecs.map { spec ->
156154
spec to tasks.register<Jar>(spec.taskName) {
@@ -186,7 +184,7 @@ val nativeJars = nativeJarSpecs.map { spec ->
186184
}
187185
}
188186

189-
val nativeJarSpecsToPublish = if(isLocalPrepareReleaseDeploy) {
187+
val nativeJarSpecsToPublish = if(isLocalPrepareRelease) {
190188
nativeJarSpecs.filter { spec -> spec.requiredFiles().all(File::isFile) }
191189
}
192190
else {

webgpu/desktop/ffm/build.gradle.kts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ fun isTaskRequested(taskName: String): Boolean {
7171

7272
val isStrictPublishTaskRequested = isTaskRequested("publish")
7373
|| isTaskRequested("publishRelease")
74-
|| isTaskRequested("publishTestRelease")
75-
|| isTaskRequested("uploadToMavenCentral")
76-
val isLocalPrepareReleaseDeploy = isTaskRequested("prepareReleaseDeploy") && !isStrictPublishTaskRequested
74+
val isLocalPrepareRelease = isTaskRequested("prepareRelease") && !isStrictPublishTaskRequested
7775

7876
val nativeJars = nativeJarSpecs.map { spec ->
7977
spec to tasks.register<Jar>(spec.taskName) {
@@ -91,7 +89,7 @@ val nativeJars = nativeJarSpecs.map { spec ->
9189
}
9290
}
9391

94-
val nativeJarSpecsToPublish = if(isLocalPrepareReleaseDeploy) {
92+
val nativeJarSpecsToPublish = if(isLocalPrepareRelease) {
9593
nativeJarSpecs.filter { file(it.nativeFile).isFile }
9694
}
9795
else {

webgpu/desktop/jni/build.gradle.kts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ fun isTaskRequested(taskName: String): Boolean {
7171

7272
val isStrictPublishTaskRequested = isTaskRequested("publish")
7373
|| isTaskRequested("publishRelease")
74-
|| isTaskRequested("publishTestRelease")
75-
|| isTaskRequested("uploadToMavenCentral")
76-
val isLocalPrepareReleaseDeploy = isTaskRequested("prepareReleaseDeploy") && !isStrictPublishTaskRequested
74+
val isLocalPrepareRelease = isTaskRequested("prepareRelease") && !isStrictPublishTaskRequested
7775

7876
val nativeJars = nativeJarSpecs.map { spec ->
7977
spec to tasks.register<Jar>(spec.taskName) {
@@ -91,7 +89,7 @@ val nativeJars = nativeJarSpecs.map { spec ->
9189
}
9290
}
9391

94-
val nativeJarSpecsToPublish = if(isLocalPrepareReleaseDeploy) {
92+
val nativeJarSpecsToPublish = if(isLocalPrepareRelease) {
9593
nativeJarSpecs.filter { file(it.nativeFile).isFile }
9694
}
9795
else {

webgpu/web/wasm/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ val taskNames = gradle.startParameter.taskNames
2323
fun isTaskRequested(taskName: String): Boolean {
2424
return taskNames.any { it == taskName || it.endsWith(":$taskName") }
2525
}
26-
val isPrepareDeployTask = isTaskRequested("prepareReleaseDeploy") || isTaskRequested("prepareSnapshotDeploy")
26+
val isPrepareTask = isTaskRequested("prepareRelease") || isTaskRequested("prepareSnapshot")
2727
val isPublishTask = taskNames.any { it.contains("publish", ignoreCase = true) }
28-
val includeNativesInMainJar = !(isPrepareDeployTask || isPublishTask)
28+
val includeNativesInMainJar = !(isPrepareTask || isPublishTask)
2929

3030
tasks.named<Jar>("jar") {
3131
if(includeNativesInMainJar) {

0 commit comments

Comments
 (0)