Skip to content

Commit 10d3923

Browse files
committed
Tragedy of the commons
- Publish common vanillin artifacts - Extend JarTaskSet publish to accept an action
1 parent 99d976f commit 10d3923

File tree

6 files changed

+67
-25
lines changed

6 files changed

+67
-25
lines changed

buildSrc/src/main/kotlin/dev/engine_room/gradle/jarset/JarTaskSet.kt

+14-12
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import net.fabricmc.loom.task.AbstractRemapJarTask
44
import net.fabricmc.loom.task.RemapJarTask
55
import net.fabricmc.loom.task.RemapSourcesJarTask
66
import org.gradle.api.Action
7+
import org.gradle.api.NamedDomainObjectProvider
78
import org.gradle.api.Project
89
import org.gradle.api.file.DuplicatesStrategy
910
import org.gradle.api.publish.PublishingExtension
@@ -30,22 +31,23 @@ class JarTaskSet(
3031
val remapSources: TaskProvider<RemapSourcesJarTask>
3132
) {
3233

33-
fun publishWithRawSources(artifactId: String) {
34-
publish(artifactId, sources)
34+
fun publishWithRawSources(action: Action<MavenPublication>): NamedDomainObjectProvider<MavenPublication> {
35+
return publish(sources, action)
3536
}
3637

37-
fun publishWithRemappedSources(artifactId: String) {
38-
publish(artifactId, remapSources)
38+
fun publishWithRemappedSources(action: Action<MavenPublication>): NamedDomainObjectProvider<MavenPublication> {
39+
return publish(remapSources, action)
3940
}
4041

41-
private fun publish(artifactId: String, sourceJar: TaskProvider<out Jar>) {
42-
project.the<PublishingExtension>().publications {
43-
register<MavenPublication>("${name}RemapMaven") {
44-
artifact(remapJar)
45-
artifact(sourceJar)
46-
artifact(javadocJar)
47-
this.artifactId = artifactId
48-
}
42+
private fun publish(
43+
sourceJar: TaskProvider<out Jar>,
44+
action: Action<MavenPublication>
45+
): NamedDomainObjectProvider<MavenPublication> {
46+
return project.the<PublishingExtension>().publications.register<MavenPublication>("${name}RemapMaven") {
47+
artifact(remapJar)
48+
artifact(sourceJar)
49+
artifact(javadocJar)
50+
action.execute(this)
4951
}
5052
}
5153

common/build.gradle.kts

+35-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ jarSets {
5858
// For publishing.
5959
create("api", api, lib).apply {
6060
addToAssemble()
61-
publishWithRemappedSources("flywheel-common-intermediary-api-${property("artifact_minecraft_version")}")
61+
publishWithRemappedSources {
62+
artifactId = "flywheel-common-intermediary-api-${property("artifact_minecraft_version")}"
63+
}
6264

6365
configureJar {
6466
manifest {
@@ -75,7 +77,38 @@ jarSets {
7577
targetNamespace = "named"
7678
}
7779

78-
publishWithRawSources("flywheel-common-mojmap-api-${property("artifact_minecraft_version")}")
80+
publishWithRawSources {
81+
artifactId = "flywheel-common-mojmap-api-${property("artifact_minecraft_version")}"
82+
}
83+
}
84+
}
85+
86+
create("vanillin", vanillin).apply {
87+
addToAssemble()
88+
publishWithRemappedSources {
89+
artifactId = "vanillin-common-intermediary-${property("artifact_minecraft_version")}"
90+
groupId = property("vanillin_group") as String
91+
}
92+
93+
configureJar {
94+
manifest {
95+
attributes("Fabric-Loom-Remap" to "true")
96+
}
97+
}
98+
99+
// Don't publish the un-remapped jars because they don't have the correct manifest populated by Loom.
100+
forkRemap("vanillinMojmap").apply {
101+
addToAssemble()
102+
configureRemap {
103+
// "named" == mojmap
104+
// We're probably remapping from named to named so Loom should noop this.
105+
targetNamespace = "named"
106+
}
107+
108+
publishWithRawSources {
109+
artifactId = "vanillin-common-mojmap-${property("artifact_minecraft_version")}"
110+
groupId = property("vanillin_group") as String
111+
}
79112
}
80113
}
81114
}

fabric/build.gradle.kts

+6-2
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,16 @@ platform {
6767
}
6868

6969
jarSets {
70-
mainSet.publishWithRemappedSources("flywheel-fabric-${project.property("artifact_minecraft_version")}")
70+
mainSet.publishWithRemappedSources {
71+
artifactId = "flywheel-fabric-${project.property("artifact_minecraft_version")}"
72+
}
7173
mainSet.outgoing("flywheel")
7274

7375
create("api", api, lib).apply {
7476
addToAssemble()
75-
publishWithRemappedSources("flywheel-fabric-api-${project.property("artifact_minecraft_version")}")
77+
publishWithRemappedSources {
78+
artifactId = "flywheel-fabric-api-${project.property("artifact_minecraft_version")}"
79+
}
7680

7781
configureJar {
7882
manifest {

forge/build.gradle.kts

+6-2
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,16 @@ platform {
6565
}
6666

6767
jarSets {
68-
mainSet.publishWithRawSources("flywheel-forge-${project.property("artifact_minecraft_version")}")
68+
mainSet.publishWithRawSources {
69+
artifactId = "flywheel-forge-${project.property("artifact_minecraft_version")}"
70+
}
6971
mainSet.outgoing("flywheel")
7072

7173
create("api", api, lib).apply {
7274
addToAssemble()
73-
publishWithRawSources("flywheel-forge-api-${project.property("artifact_minecraft_version")}")
75+
publishWithRawSources {
76+
artifactId = "flywheel-forge-api-${project.property("artifact_minecraft_version")}"
77+
}
7478

7579
configureJar {
7680
manifest {

vanillinFabric/build.gradle.kts

+3-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ transitiveSourceSets {
2727
}
2828

2929
jarSets {
30-
mainSet.publishWithRemappedSources("vanillin-fabric-${project.property("artifact_minecraft_version")}")
30+
mainSet.publishWithRemappedSources {
31+
artifactId = "vanillin-fabric-${project.property("artifact_minecraft_version")}"
32+
}
3133
}
3234

3335
defaultPackageInfos {

vanillinForge/build.gradle.kts

+3-6
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ transitiveSourceSets {
2727
}
2828

2929
jarSets {
30-
mainSet.publishWithRawSources("vanillin-forge-${project.property("artifact_minecraft_version")}")
30+
mainSet.publishWithRawSources {
31+
artifactId = "vanillin-forge-${project.property("artifact_minecraft_version")}"
32+
}
3133
}
3234

3335
defaultPackageInfos {
@@ -40,11 +42,6 @@ loom {
4042
add(main, "vanillin.refmap.json")
4143
}
4244

43-
forge {
44-
// mixinConfig("flywheel.backend.mixins.json")
45-
// mixinConfig("flywheel.impl.mixins.json")
46-
}
47-
4845
runs {
4946
configureEach {
5047
property("forge.logging.markers", "")

0 commit comments

Comments
 (0)