-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
114 lines (99 loc) · 3.95 KB
/
build.gradle
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
plugins {
id 'java-library'
id 'idea'
id 'checkstyle'
id 'net.neoforged.gradle.userdev' version '7.0.+'
}
if (file('../.etc/srscode-MC.gradle').exists()) { apply from:'../.etc/srscode-MC.gradle' }
base.archivesName.set mod_name
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
checkstyle {
setConfig resources.text.fromUri('https://srscode.github.io/checkstyle/srsCode-NF-checkstyle-J11+.xml')
setReportsDir layout.buildDirectory.get().dir('reports').dir('checkstyle').asFile
setToolVersion '10.12.5'
}
tasks.withType(Checkstyle) {
reports {
xml.required = false
html.required = true
}
}
configurations {
srsLib {}
implementation.extendsFrom srsLib
}
runs {
configureEach {
systemProperty 'forge.logging.markers', 'REGISTRIES'
systemProperty 'forge.logging.console.level', 'debug'
systemProperty 'mixin.debug.export', 'true'
modSource project.sourceSets.main
dependencies {
runtime project.configurations.srsLib
}
}
client {programArguments '--width', '1920', '--height', '1080', '--username', 'srs_dev'}
server {programArguments '--nogui'}
}
repositories {mavenLocal()}
jarJar.enable()
dependencies {
implementation (group:'net.neoforged', name:'neoforge', version:"${neo_version}")
jarJar srsLib (group:"${group}", name:"${srslib_artifact}", version:"${srslib_version_range}") {jarJar.pin(it, "${srslib_version}")}
}
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
mc_version : mc_version,
neo_version : neo_version,
loader_version_range: loader_version_range,
srslib_artifact : srslib_artifact,
srslib_version : srslib_version,
srslib_version_range: srslib_version_range,
mod_license : mod_license,
mod_issue_tracker : mod_issue_tracker,
mod_id : mod_id,
mod_name : base.archivesName.get(),
version : version as String,
mod_description : mod_description,
mod_authors : mod_authors,
mod_url : mod_url,
mod_logoFile : mod_logoFile,
mc_version_range : mc_version_range,
neo_version_range : neo_version_range,
pack_format : pack_format,
]
inputs.properties replaceProperties
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
expand replaceProperties + [project: project]
}
}
tasks.withType(JavaCompile).configureEach {options.encoding = 'UTF-8'}
tasks.getByName('jar').configure {
from 'LICENCE.txt'
manifest.attributes([
'Specification-Vendor' : "${project.group}",
'Specification-Title' : "${base.archivesName.get()}",
'Specification-Version' : '1',
'Implementation-Vendor' : "${project.group}",
'Implementation-Title' : "${base.archivesName.get()}",
'Implementation-Version' : "${project.version}",
'Build-Timestamp' : java.time.OffsetDateTime.now() as String
])
}
tasks.getByName('jarJar').configure {
from 'LICENCE.txt'
archiveClassifier = '' // overwrite the jar task output
}
// A task to partially clean build outputs while leaving cached artifacts alone
tasks.create('cleanOutputs', Delete).configure {cotask ->
tasks.getByName('assemble').configure {mustRunAfter(cotask)}
doFirst {targetFiles.each {project.logger.lifecycle "cleaning: $it.canonicalPath"}}
delete(tasks.withType(ProcessResources).collect {it.outputs.files.files}.flatten())
delete(tasks.withType(JavaCompile).collect {it.outputs.files.files}.flatten())
var libs = layout.buildDirectory.get().getAsFile().toPath().resolve("libs").toFile()
if (libs.exists()) {delete(libs.listFiles())}
}
// A task to execute a clean build
tasks.create('cleanBuild') {
dependsOn 'cleanOutputs', 'build'
}