forked from AgriCraft/AgriCraft
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
147 lines (126 loc) · 3.9 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
138
139
140
141
142
143
144
145
146
147
// ForgeGradle Buildscript
buildscript {
repositories {
jcenter()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
// Load Properties
Properties mod = new Properties()
mod.load(new FileInputStream("${project.rootDir}/mod.properties"))
sourceCompatibility = mod.version_java
targetCompatibility = mod.version_java
version = "${mod.version_major}.${mod.version_minor}.${mod.version_patch}"
mod.version = version
group = "${mod.group}.${mod.id}"
archivesBaseName = mod.id
minecraft {
version = "${mod.version_minecraft}-${mod.version_forge}"
mappings = mod.version_mappings
runDir = "/run"
makeObfSourceJar = false
println ""
println "#################################################"
println " Quikmod"
println "#################################################"
// Verify mod id follows proper conventions.
assert mod.id == mod.id.toLowerCase();
assert mod.id == mod.id.replace(' ', '');
assert mod.id == mod.id.replace('.', '');
// Verify mod group follows proper conventions.
assert mod.group == mod.group.toLowerCase();
assert mod.group == mod.group.replace(' ', '');
// Replace mod information in reference class.
replaceIn mod.reference_class
mod.each { prop ->
replace "\${mod.${prop.key}}", prop.value
println ":" + prop.key.padRight(20) + " = " + prop.value
}
println "#################################################"
println ""
}
repositories {
maven {
name = "chickenbones"
url = "http://chickenbones.net/maven/"
}
maven {
name "Mobius Repo"
url "http://mobiusstrip.eu/maven/"
}
maven {
name = "sponge"
url = "http://repo.spongepowered.org/maven/"
}
maven {
name = "sk89q"
url = "http://maven.sk89q.com/repo/"
}
}
dependencies {
// Mods (For auto-import)
//compile "codechicken:CodeChickenLib:1.8-1.1.2.139:dev"
//compile "codechicken:CodeChickenCore:1.8-1.0.5.34:dev"
//compile "codechicken:NotEnoughItems:1.8-1.0.5.82:dev"
//compile "mcp.mobius.waila:Waila:1.6.0-B2_1.8:dev"
}
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'
expand 'version':project.version, 'mcversion':project.minecraft.version
}
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
// Javadoc
task mainJavadoc(type: Javadoc) {
source = sourceSets.main.allJava
title = "AgriCraft ${mod.version} Documentation"
destinationDir = file("${project.docsDir}/mainJavadoc")
failOnError = false
}
task apiJavadoc(type: Javadoc) {
source = sourceSets.main.allJava
include "**/api/**"
title = "AgriCraft ${mod.version} API Documentation"
destinationDir = file("${project.docsDir}/apiJavadoc")
failOnError = false
}
// Jars
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: mainJavadoc) {
classifier = 'javadoc'
from "${project.docsDir}/mainJavadoc"
}
task apiJar(type: Jar) {
from sourceSets.main.allSource
from sourceSets.main.output
include "${mod.group.replace('.', '/')}/${mod.id}/api/**/*"
classifier = 'api'
}
// Tell build that it needs the API compiled first.
build.dependsOn apiJar
// Collate distribution files.
task dist(dependsOn: ['build', 'sourcesJar', 'javadocJar']) {
description "Generate the dist folder."
delete "${projectDir}/dist"
copy {
from "${buildDir}/libs"
into "${projectDir}/dist"
}
}