forked from GregTechCEu/GregTech-Modern
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
132 lines (114 loc) · 3.98 KB
/
build.gradle
File metadata and controls
132 lines (114 loc) · 3.98 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
plugins {
id 'java-library'
id 'org.jetbrains.kotlin.jvm'
id 'eclipse'
id 'idea'
id 'maven-publish'
id 'jacoco'
alias libs.plugins.modDevGradle
//alias libs.plugins.shadow
alias libs.plugins.spotless
alias libs.plugins.lombok
}
group = maven_group
// Formats the mod version to include the loader, Minecraft version, and '-SNAPSHOT-<timestamp>' if enabled.
boolean isSnapshot = System.getenv("SNAPSHOT")
version = "${mod_version}" + (isSnapshot ? "-SNAPSHOT" : "")
boolean isCI = System.getenv("CI") != null
java {
toolchain.languageVersion = JavaLanguageVersion.of(17)
}
sourceSets {
// Include resources generated by data generators.
main.resources {
srcDir 'src/generated/resources'
}
client {
compileClasspath += main.output
runtimeClasspath += main.output + main.runtimeClasspath
}
test {
compileClasspath += main.output + main.compileClasspath
runtimeClasspath += main.output + main.runtimeClasspath
}
extra {
compileClasspath += main.output
runtimeClasspath += main.output + main.runtimeClasspath
}
clientExtra {
compileClasspath += client.output + extra.compileClasspath
runtimeClasspath += client.output + client.runtimeClasspath + extra.runtimeClasspath
}
}
configurations {
// set these as unresolvable so we don't accidentally force all dependents to use them with us
clientRuntimeOnly.canBeResolved = false
extraRuntimeOnly.canBeResolved = false
clientExtraRuntimeOnly.canBeResolved = false
runtimeClasspath.extendsFrom localRuntime
extraRuntimeClasspath.extendsFrom extraLocalRuntime
clientRuntimeClasspath.extendsFrom clientLocalRuntime
extraClientRuntimeClasspath.extendsFrom clientExtraLocalRuntime
renderNurseCfg {
canBeConsumed = false
}
}
afterEvaluate {
configurations {
// same as above but for the modRuntimeOnly configurations
modClientRuntimeOnly.canBeResolved = false
modExtraRuntimeOnly.canBeResolved = false
modClientExtraRuntimeOnly.canBeResolved = false
}
}
obfuscation {
createRemappingConfiguration(configurations.localRuntime)
createRemappingConfiguration(configurations.clientLocalRuntime)
createRemappingConfiguration(configurations.extraLocalRuntime)
createRemappingConfiguration(configurations.clientExtraLocalRuntime)
}
apply from: "$rootDir/gradle/scripts/jars.gradle"
apply from: "$rootDir/gradle/scripts/moddevgradle.gradle"
apply from: "$rootDir/gradle/scripts/repositories.gradle"
apply from: "$rootDir/dependencies.gradle"
apply from: "$rootDir/gradle/scripts/resources.gradle"
apply from: "$rootDir/gradle/scripts/publishing.gradle"
apply from: "$rootDir/gradle/scripts/spotless.gradle"
apply from: "$rootDir/gradle/scripts/docs.gradle"
tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.compilerArgs << "-Xlint:-removal"
options.compilerArgs << "-Aquiet=true" // Suppress mixin notes
}
lombok {
version = "1.18.38"
}
jacoco {
applyTo runGameTestServer
}
jacocoTestReport {
doFirst {
try {
runGameTestServer.exec()
} catch (RuntimeException ignored) {}
}
doLast {
println "Coverage report location:"
println " - file://${layout.buildDirectory.dir('coverage').map(a -> a.file('index.html')).get()}"
println " - file://${layout.buildDirectory.dir('coverage').map(a -> a.file('coverage.xml')).get()}"
}
executionData runGameTestServer
sourceSets sourceSets.test
reports {
csv.required = false
xml.required = true
html.outputLocation = layout.buildDirectory.dir('coverage')
xml.outputLocation = layout.buildDirectory.dir('coverage').map(a -> a.file('coverage.xml'))
}
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: '**/client/**')
fileTree(dir: it, exclude: '**/mixins/**')
}))
}
}