-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
148 lines (126 loc) · 4.96 KB
/
build.gradle
File metadata and controls
148 lines (126 loc) · 4.96 KB
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
148
buildscript {
ext.kotlin_version = project.kotlin_version
repositories {
mavenCentral()
maven { url = "http://files.minecraftforge.net/maven" }
maven { url = "http://repo.maven.apache.org/maven2" }
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.kotlin_version}"
}
}
apply plugin: "net.minecraftforge.gradle.forge"
apply plugin: 'kotlin'
apply plugin: "maven-publish"
apply plugin: "maven"
archivesBaseName = project.mod_name.replace(' ', '-').toLowerCase()
group = "net.modcrafters"
version = "${project.minecraft_version}-${project.mod_version}"
if (project.hasProperty('mod_suffix')) {
version += "-${project.mod_suffix}"
}
compileJava { sourceCompatibility = targetCompatibility = "1.8" }
compileKotlin { kotlinOptions { jvmTarget = "1.8" } }
minecraft {
version = "${project.minecraft_version}-${project.forge_version}"
mappings = "${project.mcp_version}"
runDir = "run"
replace '@MOD-ID@', project.mod_id
replace '@MOD-NAME@', project.mod_name
replace '@MOD-VERSION@', project.mod_version
replace '@MOD-MC-VERSION@', project.minecraft_version
replace '@FORGELIN-VERSION@', project.forgelin_version
replace '@FORGE-VERSION@', project.forge_version
replace '@TESLA-CORE-LIB-VERSION@', project.teslacorelib_version
replaceIn 'constants.kt'
}
// Mad hacks to make source replacements work for Kotlin
// "stolen" from: https://github.com/PaleoCrafter/VanillaImmersion/blob/ee82ecafb76659cf7d7822a722c8f63f43f41d01/build.gradle#L119-L136
import net.minecraftforge.gradle.user.TaskSourceCopy
for (set in sourceSets) {
def taskName = "source${set.name.capitalize()}Kotlin"
def dir = new File(project.getBuildDir(), "sources/${set.name}/kotlin")
task(taskName, type: TaskSourceCopy) {
source = set.getKotlin()
output = dir
}
def compileTask = tasks[set.getCompileTaskName("kotlin")]
compileTask.source = dir
compileTask.dependsOn taskName
def dirPath = dir.toPath()
compileKotlin.include {
return it.file.toPath().startsWith(dirPath)
}
}
// end of "stolen" part :)
configurations {
compile.extendsFrom exportedCompile
deployerJars
all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' }
}
repositories {
mavenCentral()
mavenLocal()
jcenter()
maven { name='mine'; url='https://maven.modcrafters.net' }
maven { name='forgelin'; url='http://maven.shadowfacts.net/' }
maven { name='mcmultipart'; url='http://maven.amadornes.com/' }
maven { name='jei'; url="http://dvs1.progwml6.com/files/maven" }
}
dependencies {
deployerJars "org.apache.maven.wagon:wagon-ssh:2.2"
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:${project.kotlin_version}"
compile "net.shadowfacts:Forgelin:${project.forgelin_version}"
if (file("ci-lib/tesla-core-lib-${project.teslacorelib_mc_version}-${project.teslacorelib_version}-deobf.jar").exists()) {
compile files("ci-lib/tesla-core-lib-${project.teslacorelib_mc_version}-${project.teslacorelib_version}-deobf.jar")
}
else if (file("Tesla-Core-Lib/build.gradle").exists()) {
compile project(':Tesla-Core-Lib')
}
else {
compile("net.ndrei:tesla-core-lib:${project.teslacorelib_mc_version}-${project.teslacorelib_version}:deobf") { changing = true }
}
deobfCompile "mezz.jei:jei_${project.minecraft_version}:${project.jei_version}:api"
runtime "mezz.jei:jei_${project.minecraft_version}:${project.jei_version}"
compileOnly "MCMultiPart2:MCMultiPart:${project.mcmp_version}:deobf"
runtime "MCMultiPart2:MCMultiPart:${project.mcmp_version}"
}
processResources {
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
from(sourceSets.main.resources.srcDirs) {
include '**/*.info'
include '**/*.properties'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
from(sourceSets.main.resources.srcDirs) {
exclude '**/*.info'
exclude '**/*.properties'
}
}
task sourcesJar(type: Jar) {
from sourceSets.main.allSource
classifier = 'sources'
}
task deobfJar(type: Jar) {
from sourceSets.main.output
classifier = 'deobf'
}
artifacts {
archives sourceJar, deobfJar
}
if (project.hasProperty('mavenFTPServer') && project.hasProperty('mavenFTPUser') && project.hasProperty('mavenFTPPassword')) {
uploadArchives {
repositories.mavenDeployer {
dependsOn build, deobfJar, sourcesJar
configuration = configurations.deployerJars
repository(url: project.mavenFTPServer) {
authentication(userName: project.mavenFTPUser, password: mavenFTPPassword)
}
}
}
uploadArchives.dependsOn build, sourcesJar, deobfJar
}