-
Notifications
You must be signed in to change notification settings - Fork 66
/
build.gradle
137 lines (107 loc) · 3.66 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
135
136
137
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 = 'v146'
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:$mindustryVersion"
compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion"
}
//force arc version
configurations.configureEach {
resolutionStrategy.eachDependency { details ->
if(details.requested.group == 'com.github.Anuken.Arc'){
details.useVersion "$mindustryVersion"
}
}
}
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 NewHorizonModAndroid.jar NewHorizonModDesktop.jar"
.execute(null, new File("$buildDir/libs")).waitForProcessOutput(System.out, System.err)
}
}
jar{
archiveFileName = "NewHorizonModDesktop.jar"
from{
configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) }
}
from(projectDir){
include "mod.hjson"
}
from("assets/"){
include "**"
}
}
//paths are hardcoded
tasks.register('copyTo', Copy) {
from jar
into 'E:/Steam/steamapps/common/Mindustry/saves/mods'
rename { 'NewHorizonModJar.jar' }
from jar
into appDataRoaming
rename { 'NewHorizonModJar.jar' }
}
tasks.register('debugMobile', JavaExec) {
dependsOn classes
dependsOn 'copyTo'
main = "-jar"
args = [
"E:/MindustryModDevLib/Mindustry7.0.jar",
"-debug",
"-testMobile"
]
}
tasks.register('debugDesktop', JavaExec) {
dependsOn classes
dependsOn 'copyTo'
main = "-jar"
args = [
"E:/MindustryModDevLib/Mindustry7.0.jar",
"-debug",
]
}
tasks.register('deploy', Jar) {
dependsOn jarAndroid
dependsOn jar
archiveFileName = "NewHorizonMod.jar"
from { [zipTree("$buildDir/libs/NewHorizonModDesktop.jar"), zipTree("$buildDir/libs/NewHorizonModAndroid.jar")] }
doLast {
delete {
delete "$buildDir/libs/NewHorizonModDesktop.jar"
delete "$buildDir/libs/NewHorizonModAndroid.jar"
}
}
}