forked from daveyliam/mapwriter
-
Notifications
You must be signed in to change notification settings - Fork 38
/
build.gradle
135 lines (113 loc) · 3.67 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
// For those who want the bleeding edge
buildscript {
repositories {
jcenter()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
url = 'https://oss.sonatype.org/content/groups/public'
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
//classpath 'com.matthewprenger:CurseGradle:1.0.5-SNAPSHOT'
}
}
// for people who want stable
plugins {
//id "net.minecraftforge.gradle.forge" version "2.0.2"
id 'com.matthewprenger.cursegradle' version '1.0.4'
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'com.matthewprenger.cursegradle'
repositories {
mavenLocal()
}
// Define properties file
ext.configFile = file "build.properties"
configFile.withReader {
// Load config. It shall from now be referenced as simply config or project.config
def prop = new Properties()
prop.load(it)
project.ext.config = new ConfigSlurper().parse prop
}
dependencies {
if (config.isSet('dependicies')) {
def dep = config.dependicies.split(", ")
dep.each { compile it }
}
}
group= config.mod_group
version = config.mod_version
archivesBaseName = config.mod_name
minecraft {
version = config.mc_version + "-" + config.forge_version
runDir = "eclipse"
mappings = config.mcp_version
replace '@MOD_VERSION@', config.mod_version
replace '@ACCEPTED_MC_VERSION@', config.accepted_mc_version
}
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'
}
}
version = "${project.minecraft.version}-${project.version}"
jar {
//classifier = 'universal'
}
task devJar(type: Jar) {
from sourceSets.main.output
classifier = 'dev'
}
artifacts {
archives sourceJar
archives devJar
}
eclipse {
// replace absolute paths with classpath variable GRADLE_CACHE
pathVariables 'GRADLE_CACHE': gradle.gradleUserHomeDir
}
eclipse.classpath.file.whenMerged { classpath ->
classpath.entries.each { entry ->
if (entry.kind == 'lib') {
// for jar files referenced in project folder, use relative path
def prefix = projectDir.absolutePath.replace('\\', '/')
entry.path = entry.path.replace(prefix, "/$eclipse.project.name")
}
}
}
gradle.taskGraph.whenReady { taskGraph ->
if (!taskGraph.allTasks.findAll{ it.name == 'eclipseClasspath' }.empty) {
gradle.buildFinished {
println '----------------------------------------------------------------------'
print "Please set the Eclipse classpath variable 'GRADLE_USER_HOME' in Preferences "
println "-> Java -> Build path -> Classpath Variable to $gradle.gradleUserHomeDir"
println '----------------------------------------------------------------------'
}
}
}
curseforge {
apiKey = project.hasProperty('curseForgeApiKey') ? project.curseForgeApiKey : ''
project {
//changelogType = "text"
id = config.curse_project_id
changelog = "" // A file can also be set using: changelog = file('changelog.txt')
releaseType = config.release_type
mainArtifact jar
addGameVersion config.mc_version
}
}