generated from GglLfr/MindustryModTemplate
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathbuild.gradle
More file actions
141 lines (109 loc) · 3.73 KB
/
build.gradle
File metadata and controls
141 lines (109 loc) · 3.73 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
135
136
137
138
139
140
141
def appDataRoaming = System.getProperty("user.home") + "/AppData/Roaming/Mindustry/mods"
apply plugin: "java"
version '1.0'
sourceSets.main.java.srcDirs = ["src"]
repositories{
mavenCentral()
maven{ url "https://raw.githubusercontent.com/Zelaux/MindustryRepo/master/repository" }
maven{ url 'https://www.jitpack.io' }
}
java{
targetCompatibility = 8
sourceCompatibility = JavaVersion.VERSION_17
}
ext{
//the build number that this mod is made for
mindustryVersion = 'caf89c8fee'
jabelVersion = "93fde537c7"
//windows sucks
isWindows = System.getProperty("os.name").toLowerCase().contains("windows")
sdkRoot = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT")
}
//java 8 backwards compatibility flag
allprojects{
tasks.withType(JavaCompile).tap {
configureEach {
options.compilerArgs.addAll(['--release', '8'])
}
}
}
dependencies{
compileOnly "com.github.Anuken.Arc:arc-core:v154"
compileOnly "com.github.Anuken.Mindustry:core:v154"
annotationProcessor "com.github.Anuken:jabel:$jabelVersion"
}
tasks.register('jarAndroid') {
dependsOn "jar"
doLast {
if (!sdkRoot || !new File(sdkRoot).exists()) throw new GradleException("No valid Android SDK found. Ensure that ANDROID_HOME is set to your Android SDK directory.");
def platformRoot = new File("$sdkRoot/platforms/").listFiles().sort().reverse().find { f -> new File(f, "android.jar").exists() }
if (!platformRoot) throw new GradleException("No android.jar found. Ensure that you have an Android platform installed.")
//collect dependencies needed for desugaring
def dependencies = (configurations.compileClasspath.asList() + configurations.runtimeClasspath.asList() + [new File(platformRoot, "android.jar")]).collect { "--classpath $it.path" }.join(" ")
def d8 = isWindows ? "d8.bat" : "d8"
//dex and desugar files - this requires d8 in your PATH
"$d8 $dependencies --min-api 14 --output ExogenesisJavaAndroid.jar ExogenesisJavaDesktop.jar"
.execute(null, new File("$buildDir/libs")).waitForProcessOutput(System.out, System.err)
}
}
jar{
archiveFileName = "ExogenesisJavaDesktop.jar"
from{
configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) }
}
from(projectDir){
include "mod.json"
}
from("assets/"){
include "**"
}
}
//paths are hardcoded
tasks.register('copyTo', Copy) {
from jar
into 'E:/Steam/steamapps/common/Mindustry/saves/mods'
rename { 'ExogenesisJavaJar.jar' }
from jar
into appDataRoaming
rename { 'ExogenesisJavaJar.jar' }
}
tasks.register('debugMobile', JavaExec) {
dependsOn classes
dependsOn 'copyTo'
main = "-jar"
args = [
"E:/project/MindustryModDevLib/Mindustry8.0.jar",
"-debug",
"-testMobile"
]
}
tasks.register('debugDesktop', JavaExec) {
dependsOn classes
dependsOn 'copyTo'
main = "-jar"
args = [
"E:/project/MindustryModDevLib/Mindustry8.0.jar",
"-debug",
]
}
tasks.register('debugBE', JavaExec) {
dependsOn classes
dependsOn 'copyTo'
main = "-jar"
args = [
"E:/project/MindustryModDevLib/Mindustry-BE.jar",
"-debug",
]
}
tasks.register('deploy', Jar) {
dependsOn jarAndroid
dependsOn jar
archiveFileName = "ExogenesisJava.jar"
from { [zipTree("$buildDir/libs/ExogenesisJavaDesktop.jar"), zipTree("$buildDir/libs/ExogenesisJavaAndroid.jar")] }
doLast {
delete {
delete "$buildDir/libs/ExogenesisJavaDesktop.jar"
delete "$buildDir/libs/ExogenesisJavaAndroid.jar"
}
}
}