-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
120 lines (100 loc) · 3.19 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
buildscript {
repositories {
jcenter()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
}
}
apply plugin: 'java'
apply plugin: 'net.minecraftforge.gradle.forge'
sourceCompatibility = 1.8
targetCompatibility = 1.8
def forgeVersion = "1.8.9-11.15.1.1722"
def versionInfo = getGitVersion()
version = "${forgeVersion}-${versionInfo['Wakcraft.version']}"
group = "heero.mods"
archivesBaseName = "wakcraft"
minecraft {
version = "${forgeVersion}"
mappings = "stable_22"
if (file("../run").exists()) {
runDir = "../run"
} else {
runDir = "run"
}
}
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
jar {
manifest {
attributes 'FMLAT': 'wakcraft_at.cfg'
}
}
dependencies {
compile 'com.google.code.findbugs:jsr305:1.3.9'
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
// generate version.properties file from the git version data earlier
doLast {
def propsFile = new File(destinationDir, 'version.properties')
def properties = new Properties()
properties.putAll(versionInfo)
properties['Wakcraft.build.mcversion'] = project.minecraft.version
properties.store(propsFile.newWriter(), null)
}
}
def getGitVersion() {
def out = [:]
// call git command.
def outStreamBranch = new ByteArrayOutputStream()
exec {
executable = 'git'
args = ['rev-parse', '--abbrev-ref', 'HEAD']
standardOutput = outStreamBranch
}
def outStreamVersion = new ByteArrayOutputStream()
exec {
executable = 'git'
args = ['describe', '--long', "--match=[^(jenkins)]*"]
standardOutput = outStreamVersion
}
def branch = outStreamBranch.toString().trim()
def fullVersion = outStreamVersion.toString().trim()
def matcher = fullVersion =~ /(\d+).(\d+)-(\d+)-(.*)/
def maj = matcher[0][1]
def min = matcher[0][2]
def rev = matcher[0][3]
def hash = matcher[0][4]
def bn = System.getenv("BUILD_NUMBER") ?: "1"
out['Wakcraft.build.branch'] = branch.toString()
out['Wakcraft.build.major.number'] = maj.toString()
out['Wakcraft.build.minor.number'] = min.toString()
out['Wakcraft.build.revision.number'] = rev.toString()
out['Wakcraft.build.githash'] = hash.toString()
out['Wakcraft.build.number'] = bn.toString()
out['Wakcraft.version'] = "${branch}.${maj}.${min}.${rev}.${bn}".toString()
return out
}