-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.gradle
127 lines (103 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
buildscript {
repositories {
mavenCentral()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
apply plugin: "forge"
// define the properties file
ext.configFile = file "build.properties"
configFile.withReader {
// read config. it shall from now on be referenced as simply config or as project.config
def prop = new Properties()
prop.load(it)
ext.config = new ConfigSlurper().parse prop
}
group = "stuuupiiid.guncus"
version = "${config.minecraft_version}-${config.mod_version}.${System.getenv("BUILD_NUMBER") ?: '-'}"
archivesBaseName = "GunCustomization" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
minecraft {
version = config.minecraft_version + "-" + config.forge_version
runDir = "run"
// replacing
replace "@version@", project.version
replaceIn "GunCus.java"
replaceIn "lib/Reference.java"
if (project.hasProperty("guncus_signature"))
replace "@FINGERPRINT@", project.guncus_signature
}
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 the files we want.
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
include 'version.properties'
// replaces
expand 'mod_version': project.version, 'minecraft_version': project.config.minecraft_version
}
// copy everything else, thats we didnt do before
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
exclude 'version.properties'
}
}
// BEYOND THIS POINT..
// IS STUFF THATS FOR RELEASING...
// verify the properties exist.. or initialize.
if (!project.hasProperty("keystore_location")) // keystore stuff
ext.keystore_location = "."
if (!project.hasProperty("guncus_keystore_alias")) // keystore stuff
ext.guncus_keystore_alias = ""
if (!project.hasProperty("keystore_password")) // keystore stuff
ext.keystore_password = ""
if (!project.hasProperty("guncus_release_loc")) // release loc
ext.guncus_release_loc = "."
else
ext.guncus_release_loc = guncus_release_loc.replace('{MC}', minecraft.version).replace('{MODVER}', config.mod_version).replace('{BUILD}', "${System.getenv().BUILD_NUMBER}")
task signJar(dependsOn: "reobf") {
inputs.file jar.getArchivePath()
inputs.file keystore_location
inputs.property "guncus_keystore_alias", guncus_keystore_alias
inputs.property "keystore_password", keystore_password
outputs.file jar.getArchivePath()
// only sign if the keystore exists
onlyIf {
return keystore_location != "."
}
// the actual action.. sign the jar.
doLast {
ant.signjar(
destDir: jar.destinationDir,
jar: jar.getArchivePath(),
keystore: keystore_location,
alias: guncus_keystore_alias,
storepass: keystore_password
)
}
}
task release(type: Copy) {
dependsOn "signJar"
from project.tasks.jar.destinationDir
into project.file(project.guncus_release_loc)
eachFile { file ->
logger.info "copying ${file}"
}
// only if the release location isn't empty.
onlyIf {
return project.guncus_release_loc != "."
}
}