-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
134 lines (115 loc) · 3.94 KB
/
Copy pathbuild.gradle.kts
File metadata and controls
134 lines (115 loc) · 3.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import java.nio.file.Paths
import kotlin.io.path.moveTo
import kotlin.io.path.ExperimentalPathApi
import java.nio.file.Files
plugins {
java
kotlin("jvm") version "1.7.20"
}
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
subprojects {
apply(plugin = "java")
}
var modVersion: String = project.property("global_version").toString()
//var modVersion: String = providers.gradleProperty("global_version")
var mcCore = project(":mccore")
var mcInterfaceForge1122 = project(":mcinterfaceforge1122")
var mcInterfaceForge1165 = project(":mcinterfaceforge1165")
var mcInterfaceForge1182 = project(":mcinterfaceforge1182")
var mcInterfaceForge1192 = project(":mcinterfaceforge1192")
var mcInterfaceForge1201 = project(":mcinterfaceforge1201")
tasks.register("buildCore") {
dependsOn(mcCore.tasks.build)
doLast {
moveToOut(mcCore, "core")
}
}
tasks.register("buildForge1122") {
doFirst { preBuild() }
doLast {
moveToOut(mcInterfaceForge1122, "1.12.2")
}
dependsOn(mcInterfaceForge1122.tasks.build)
}
tasks.register("buildForge1165") {
doFirst { preBuild() }
doLast {
moveToOut(mcInterfaceForge1165, "1.16.5")
}
dependsOn(mcInterfaceForge1165.tasks.build)
}
tasks.register("buildForge1182") {
doFirst { preBuild() }
doLast {
moveToOut(mcInterfaceForge1182, "1.18.2")
}
dependsOn(mcInterfaceForge1182.tasks.build)
}
tasks.register("buildForge1192") {
doFirst { preBuild() }
doLast {
moveToOut(mcInterfaceForge1192, "1.19.2")
}
dependsOn(mcInterfaceForge1192.tasks.build)
}
tasks.register("buildForge1201") {
doFirst { preBuild() }
doLast {
moveToOut(mcInterfaceForge1201, "1.20.1")
}
dependsOn(mcInterfaceForge1201.tasks.build)
}
tasks.register<Exec>("buildForge1211") {
doFirst { preBuild() }
commandLine(
"${System.getProperty("java.home")}/bin/java",
"-classpath",
"${project.projectDir.canonicalPath}/gradle/neoforge-wrapper/gradle-wrapper.jar",
"org.gradle.wrapper.GradleWrapperMain",
"--no-daemon",
"-p",
"${project.projectDir.canonicalPath}/mcinterfaceneoforge1211",
"build"
)
doLast {
moveToOut("mcinterfaceneoforge1211", "1.21.1-$modVersion")
}
}
tasks.register("buildForgeAll") {
dependsOn(tasks.getByName("buildForge1122"))
dependsOn(tasks.getByName("buildForge1165"))
dependsOn(tasks.getByName("buildForge1182"))
dependsOn(tasks.getByName("buildForge1192"))
dependsOn(tasks.getByName("buildForge1201"))
dependsOn(tasks.getByName("buildForge1211"))
}
@OptIn(ExperimentalPathApi::class)
fun moveToOut(subProject: Project, versionStr: String) {
val jarName = "Immersive Vehicles-${subProject.version}.jar"
val source = Paths.get("${subProject.projectDir.canonicalPath}/build/libs/$jarName")
val outDir = Paths.get("${project.projectDir.canonicalPath}/out")
Files.createDirectories(outDir)
source.moveTo(outDir.resolve(jarName), true)
}
@OptIn(ExperimentalPathApi::class)
fun moveToOut(moduleDirectory: String, artifactVersion: String) {
val jarName = "Immersive Vehicles-$artifactVersion.jar"
val source = Paths.get("${project.projectDir.canonicalPath}/$moduleDirectory/build/libs/$jarName")
val outDir = Paths.get("${project.projectDir.canonicalPath}/out")
Files.createDirectories(outDir)
source.moveTo(outDir.resolve(jarName), true)
}
fun preBuild() {
// Could probably be better somehow, but I'm not sure how
project.projectDir.canonicalFile.walk()
.filter { it.name == "gradle.properties" || it.name == "mcmod.info" || it.name == "InterfaceLoader.java" }
.forEach { it.writeText(it.readText()
.replace(Regex("mod_version=(.+)"), "mod_version=$modVersion")
.replace(Regex("\"version\": \"[^\"]*\""), "\"version\": \"$modVersion\"")
.replace(Regex("MODVER = \"[^\"]*\";"), "MODVER = \"$modVersion\";")) }
}