Skip to content

Commit 0abdc39

Browse files
Convert root build script to kotlin gradle
1 parent d63cc7b commit 0abdc39

File tree

2 files changed

+173
-190
lines changed

2 files changed

+173
-190
lines changed

build.gradle

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

build.gradle.kts

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
plugins {
2+
id("java")
3+
id("maven-publish")
4+
id("org.ajoberstar.grgit") version "5.3.0"
5+
id("fabric-loom") version "1.9-SNAPSHOT"
6+
id("com.github.ben-manes.versions") version "0.51.0"
7+
id("xyz.wagyourtail.jvmdowngrader") version "0.7.1"
8+
id("me.modmuss50.mod-publish-plugin") version "0.8.4"
9+
}
10+
11+
private val env = System.getenv()
12+
group = "com.viaversion.fabric"
13+
description = "Client-side and server-side ViaVersion implementation for Fabric"
14+
version = "0.4.17+" + env["GITHUB_RUN_NUMBER"] + "-" + getBranch()
15+
16+
fun getBranch(): String {
17+
val branch = env["GITHUB_REF"] ?: grgit.branch.current().name ?: "unknown"
18+
return branch.substringAfterLast("/")
19+
}
20+
21+
allprojects {
22+
apply(plugin = "java")
23+
apply(plugin = "maven-publish")
24+
apply(plugin = "fabric-loom")
25+
26+
java {
27+
toolchain {
28+
languageVersion.set(JavaLanguageVersion.of(21))
29+
vendor.set(JvmVendorSpec.ADOPTIUM)
30+
}
31+
withSourcesJar()
32+
}
33+
34+
tasks.withType<JavaCompile>().configureEach {
35+
options.release.set(8)
36+
}
37+
tasks.withType<JavaExec>().configureEach {
38+
javaLauncher.set(javaToolchains.launcherFor(java.toolchain))
39+
}
40+
41+
version = rootProject.version
42+
group = rootProject.group
43+
44+
repositories {
45+
mavenCentral()
46+
maven("https://repo.viaversion.com/")
47+
maven("https://maven.fabricmc.net/")
48+
maven("https://maven.terraformersmc.com/releases/")
49+
maven("https://maven.nucleoid.xyz/")
50+
}
51+
52+
dependencies {
53+
implementation("com.viaversion:viaversion:${rootProject.extra["viaver_version"]}") {
54+
// transitive = false because Guava is conflicting on runClient
55+
isTransitive = false
56+
}
57+
modImplementation("net.fabricmc:fabric-loader:${rootProject.extra["loader_version"]}")
58+
}
59+
60+
tasks.processResources {
61+
filesMatching("fabric.mod.json") {
62+
expand(rootProject.properties)
63+
}
64+
}
65+
}
66+
67+
subprojects {
68+
loom {
69+
runs {
70+
named("client") {
71+
client()
72+
ideConfigGenerated(true)
73+
runDir("run")
74+
}
75+
named("server") {
76+
server()
77+
ideConfigGenerated(true)
78+
runDir("run")
79+
}
80+
}
81+
}
82+
83+
dependencies {
84+
implementation(project(":")) {
85+
exclude(group = "net.fabricmc", module = "fabric-loader") // prevent duplicate fabric-loader on run
86+
}
87+
}
88+
89+
publishing {
90+
publications {
91+
create<MavenPublication>("mavenJava") {
92+
from(components["java"])
93+
}
94+
}
95+
}
96+
}
97+
98+
publishing {
99+
publications {
100+
create<MavenPublication>("mavenJava") {
101+
from(components["java"])
102+
}
103+
}
104+
}
105+
106+
subprojects.forEach {
107+
rootProject.tasks.named("remapJar").configure {
108+
dependsOn("${it.path}:remapJar")
109+
}
110+
}
111+
112+
val includeJ8 = configurations.create("includeJ8")
113+
114+
jvmdg.dg(includeJ8)
115+
116+
dependencies {
117+
// dummy version
118+
minecraft("com.mojang:minecraft:1.14.4")
119+
mappings("net.fabricmc:yarn:1.14.4+build.18:v2")
120+
121+
includeJ8("com.viaversion:viaversion:${rootProject.extra["viaver_version"]}")
122+
include("io.github.cottonmc:cotton-client-commands:1.1.0+1.15.2")
123+
}
124+
125+
tasks.remapJar.configure {
126+
nestedJars.from(includeJ8)
127+
subprojects.forEach { subproject ->
128+
subproject.tasks.matching { it.name == "remapJar" }.configureEach {
129+
nestedJars.from(this)
130+
}
131+
}
132+
}
133+
134+
val mcReleases = rootProject.extra["publish_mc_versions"].toString().split(",")
135+
.map { it.trim() }
136+
137+
publishMods {
138+
file = tasks.remapJar.get().archiveFile.get().asFile
139+
changelog = "A changelog can be found at https://github.com/ViaVersion/ViaFabric/commits"
140+
version = rootProject.version.toString()
141+
displayName = "[${getBranch()}] ViaFabric $version"
142+
modLoaders.add("fabric")
143+
dryRun = providers.environmentVariable("CURSEFORGE_TOKEN").getOrNull() == null
144+
145+
curseforge {
146+
accessToken = providers.environmentVariable("CURSEFORGE_TOKEN").orNull
147+
projectId = "391298"
148+
type = BETA // alpha is hidden by default
149+
150+
javaVersions.addAll(
151+
(8..22).map { JavaVersion.toVersion(it) }
152+
)
153+
minecraftVersions.addAll(mcReleases)
154+
rootProject.extra["curseforge_mc_snapshot"]?.let {
155+
minecraftVersions.add(it.toString())
156+
}
157+
optional("fabric-api")
158+
embeds("cotton-client-commands")
159+
}
160+
modrinth {
161+
accessToken = providers.environmentVariable("MODRINTH_TOKEN").orNull
162+
projectId = "YlKdE5VK"
163+
type = ALPHA
164+
minecraftVersions.addAll(mcReleases)
165+
rootProject.extra["modrinth_mc_snapshot"]?.let {
166+
minecraftVersions.add(it.toString())
167+
}
168+
optional("fabric-api")
169+
embeds("viaversion")
170+
}
171+
}
172+
173+
defaultTasks("clean", "build")

0 commit comments

Comments
 (0)