forked from MEEPofFaith/black-holes-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
130 lines (102 loc) · 3.94 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
plugins{
id 'java'
id 'maven-publish'
}
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){
options.compilerArgs.addAll(['--release', '8'])
}
}
dependencies{
compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion"
compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion"
annotationProcessor "com.github.Anuken:jabel:$jabelVersion"
}
//force arc version
configurations.all{
resolutionStrategy.eachDependency { details ->
if(details.requested.group == 'com.github.Anuken.Arc'){
details.useVersion "$mindustryVersion"
}
}
}
configure(allprojects){
apply plugin: 'java'
apply plugin: 'maven-publish'
group = 'com.github.MEEPofFaith.MindustryBlackHoleRenderer'
publishing.publications.register('maven', MavenPublication){
from components.java
}
}
task 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 ${project.archivesBaseName}Android.jar ${project.archivesBaseName}Desktop.jar"
.execute(null, new File("$buildDir/libs")).waitForProcessOutput(System.out, System.err)
}
}
jar{
archiveFileName = "${base.archivesBaseName}Desktop.jar"
from{
configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) }
}
from(rootDir){
include "mod.hjson"
}
from("assets/"){
include "**"
}
}
task deploy(type: Jar){
dependsOn jarAndroid
dependsOn jar
archiveFileName = "${base.archivesBaseName}.jar"
from{ [zipTree("$buildDir/libs/${project.archivesBaseName}Desktop.jar"), zipTree("$buildDir/libs/${project.archivesBaseName}Android.jar")] }
doLast{
delete{
delete "$buildDir/libs/${project.archivesBaseName}Desktop.jar"
delete "$buildDir/libs/${project.archivesBaseName}Android.jar"
}
}
}
task move doLast{
println "Yeeting the mod jar to the shadow realm..."
String os = System.getProperty("os.name").toLowerCase(Locale.ROOT)
if(os.contains("windows")) {
ant.move file: "${buildDir}\\libs\\${project.archivesBaseName}Desktop.jar",
todir: "${System.env.USERPROFILE}\\AppData\\Roaming\\Mindustry\\mods"
}else if(os.contains("linux")) { //from Router
ant.move file: "${buildDir}/libs/${project.archivesBaseName}Desktop.jar",
todir: "${System.env.USERPROFILE}/.local/share/Mindustry/mods"
}else{
println "Yeah I don't know how to do this on a Mac can someone tell me?"
}
}
task jarMove dependsOn "jar", "move"