-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
89 lines (68 loc) · 1.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
import groovy.json.*
apply plugin: 'java'
sourceCompatibility = 14
targetCompatibility = 1.8
repositories {
mavenCentral()
maven { url 'https://www.jitpack.io' }
}
ext {
def json = new JsonSlurper()
def libs = "$rootDir/build/libs"
def modfile = file('mod.json')
mod = json.parseText(modfile.text)
modName = mod['name']
modMindustryVersion = mod['minGameVersion']
modVersion = mod['version']
artifactBaseName = modName + (!modVersion.isEmpty() ? "-$modVersion" : "")
jarPath = "$libs/${artifactBaseName}-desktop.jar"
dexPath = "$libs/${artifactBaseName}-android.jar"
versions = [:]
versions.mindustry = 'v' + modMindustryVersion
versions.jabel = '0.3.1'
}
dependencies {
compileOnly "com.github.Anuken.Arc:arc-core:$versions.mindustry"
compileOnly "com.github.Anuken.Mindustry:core:$versions.mindustry"
annotationProcessor "com.github.MindustryInside:jabel:$versions.jabel"
}
task desktop(type: Jar) {
archiveBaseName.set "$artifactBaseName-desktop"
from {
configurations.runtimeClasspath.collect {
it.isDirectory() ? it : zipTree(it)
}
}
from(rootDir) {
include 'mod.json'
}
with jar
}
task android(type: Exec, dependsOn: desktop) {
def command = [
'd8', jarPath,
'--min-api', '28',
'--output', dexPath
]
if (System.getProperty('os.name').toLowerCase().contains('windows')) {
commandLine("cmd", "/c", *command)
} else {
commandLine(*command)
}
}
task dist(type: Jar, dependsOn: android) {
archiveBaseName.set artifactBaseName
from zipTree(jarPath), zipTree(dexPath)
}
tasks.withType(JavaCompile) {
options.compilerArgs = [
'--release', '8',
'--enable-preview',
]
options.compilerArgs << '-Xplugin:jabel'
doFirst {
options.compilerArgs = options.compilerArgs.findAll {
it != '--enable-preview'
}
}
}