-
Notifications
You must be signed in to change notification settings - Fork 34
/
build.gradle
134 lines (116 loc) · 3.76 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
plugins {
// Needed for Forge+Fabric
id "architectury-plugin" version "3.4.146"
id "dev.architectury.loom" version "1.3.355" apply false
// Kotlin
id "org.jetbrains.kotlin.jvm" version "1.9.10" apply false
// Kotlin linter
id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
// Java linter
id "checkstyle"
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
id "com.modrinth.minotaur" version "2.4.5" apply false
}
// Determine the version
if (project.hasProperty("CustomReleaseVersion")) {
// Remove release/ from the version if present
version = project.property("CustomReleaseVersion").replaceFirst("^release/", "")
} else {
try {
String gitRevision = "git rev-parse HEAD".execute().text.trim()
version = eureka_version + '+' + gitRevision.substring(0, 10)
} catch (Exception e) {
version = eureka_version
}
}
architectury {
minecraft = rootProject.minecraft_version
}
subprojects {
apply plugin: "dev.architectury.loom"
// Apply checkstyle and ktlint to check the code style of every sub project
apply plugin: "org.jlleitschuh.gradle.ktlint"
apply plugin: "checkstyle"
apply plugin: "org.jetbrains.kotlin.jvm"
loom {
silentMojangMappingsLicense()
}
repositories {
maven {
name = "ParchmentMC"
url = "https://maven.parchmentmc.org"
}
}
dependencies {
minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
// The following line declares the mojmap mappings, you may use other mappings as well
mappings(loom.layered {
officialMojangMappings()
parchment("org.parchmentmc.data:parchment-1.18.2:2022.09.04@zip")
})
implementation("org.joml:joml:1.10.4") { transitive = false }
implementation("org.joml:joml-primitives:1.10.0") { transitive = false }
}
checkstyle {
// configure to use checkstyle v8.41
toolVersion "8.41"
// Gradle shouldn't fail builds on checkstyle errors
ignoreFailures = true
// Checkstyle config file is in .checkstyle/checkstyle.xml
configFile = file("${rootDir}/.checkstyle/checkstyle.xml")
}
// configure checkstyle, but different
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
tasks.withType(Checkstyle) {
reports {
// Do not output html reports
html.required = false
// Output xml reports
xml.required = true
}
}
// configure ktlint
ktlint {
ignoreFailures = true
reporters {
// configure to output in checkstyle XML format
reporter "checkstyle"
}
}
kotlin {
jvmToolchain(17)
}
}
allprojects {
apply plugin: "java"
apply plugin: "architectury-plugin"
apply plugin: "maven-publish"
archivesBaseName = rootProject.archives_base_name
version = rootProject.version
group = rootProject.maven_group
repositories {
mavenLocal()
maven {
name = 'Kotlin for Forge'
url = 'https://thedarkcolour.github.io/KotlinForForge/'
content { includeGroup "thedarkcolour" }
}
maven {
name = "Valkyrien Skies Internal"
url = project.vs_maven_url ?: 'https://maven.valkyrienskies.org'
if (project.vs_maven_username && project.vs_maven_password) {
credentials {
username = project.vs_maven_username
password = project.vs_maven_password
}
}
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
}
java {
withSourcesJar()
}
}