mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2024-11-25 22:07:59 +01:00
291 lines
8.4 KiB
Groovy
291 lines
8.4 KiB
Groovy
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
mavenLocal()
|
|
mavenCentral()
|
|
maven {
|
|
name = "forge"
|
|
url = "http://files.minecraftforge.net/maven"
|
|
}
|
|
maven {
|
|
name = "sonatype"
|
|
url = "https://oss.sonatype.org/content/repositories/snapshots/"
|
|
}
|
|
maven {
|
|
name = 'sponge'
|
|
url = 'http://repo.spongepowered.org/maven'
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT'
|
|
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0'
|
|
classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'net.minecraftforge.gradle.tweaker-client'
|
|
apply plugin: 'checkstyle'
|
|
apply plugin: 'maven'
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
|
|
// Default tasks
|
|
defaultTasks 'build'
|
|
|
|
ext {
|
|
// Artefact details
|
|
buildNumber = project.hasProperty("buildNumber") ? buildNumber : '0'
|
|
buildVersion = project.hasProperty("buildVersion") ? buildVersion : '0.0'
|
|
ciSystem = project.hasProperty("ciSystem") ? ciSystem : 'unknown'
|
|
commit = project.hasProperty("commit") ? commit : 'unknown'
|
|
classifier = project.hasProperty("buildType") ? buildType : 'SNAPSHOT'
|
|
isReleaseBuild = "RELEASE".equals(project.classifier.toUpperCase())
|
|
mavenRepo = project.isReleaseBuild ? "mavenUrl" : "mavenSnapshotUrl"
|
|
|
|
// Extended project information
|
|
projectName = 'LiteLoader'
|
|
inceptionYear = '2012'
|
|
packaging = 'jar'
|
|
|
|
startClass = 'com.mumfrey.liteloader.debug.Start'
|
|
tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker'
|
|
}
|
|
|
|
// Basic project information
|
|
group = "com.mumfrey"
|
|
archivesBaseName = "liteloader"
|
|
version = buildVersion + (project.isReleaseBuild ? '' : '-' + project.classifier)
|
|
|
|
// Minimum version of Java required
|
|
sourceCompatibility = '1.6'
|
|
targetCompatibility = '1.6'
|
|
|
|
repositories {
|
|
maven {
|
|
name = 'sponge'
|
|
url = 'https://repo.spongepowered.org/maven/'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile 'org.spongepowered:mixin:0.4.17-20160126.141141-3'
|
|
compile 'org.ow2.asm:asm-debug-all:5.0.3'
|
|
compile 'com.google.guava:guava:17.0'
|
|
compile 'com.google.code.gson:gson:2.2.4'
|
|
}
|
|
|
|
minecraft {
|
|
version = project.mcVersion
|
|
mappings = project.mcMappings
|
|
runDir = "run"
|
|
tweakClass = project.tweakClass
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
refMap = "mixins.liteloader.core.refmap.json"
|
|
}
|
|
client {
|
|
compileClasspath += main.compileClasspath + main.output
|
|
refMap = "mixins.liteloader.client.refmap.json"
|
|
}
|
|
debug {
|
|
compileClasspath += client.compileClasspath + client.output
|
|
}
|
|
}
|
|
|
|
mixin {
|
|
defaultObfuscationEnv notch
|
|
}
|
|
|
|
checkstyle {
|
|
configProperties = [
|
|
"name" : project.name,
|
|
"organization": project.organization,
|
|
"url" : project.url,
|
|
"year" : project.inceptionYear
|
|
]
|
|
configFile = file("checkstyle.xml")
|
|
toolVersion = '6.13'
|
|
}
|
|
|
|
javadoc {
|
|
source sourceSets.client.allJava
|
|
source sourceSets.debug.allJava
|
|
}
|
|
|
|
afterEvaluate {
|
|
logger.lifecycle '================================================='
|
|
logger.lifecycle ' LiteLoader'
|
|
logger.lifecycle ' Copyright (C) 2011-2016 Adam Mummery-Smith'
|
|
logger.lifecycle ' Running in {} mode', (project.isReleaseBuild ? "RELEASE" : "SNAPSHOT")
|
|
logger.lifecycle '================================================='
|
|
allprojects {
|
|
makeEclipseCleanRunClient {
|
|
arguments = ""
|
|
jvmArguments = "-Dliteloader.debug=true -Dmixin.debug.verbose=true -Dmixin.debug.verify=true"
|
|
}
|
|
}
|
|
// hacks for run configs
|
|
def mc = plugins.getPlugin 'net.minecraftforge.gradle.tweaker-client'
|
|
mc.replacer.putReplacement '{RUN_CLIENT_MAIN}', project.startClass
|
|
mc.replacer.putReplacement '{RUN_CLIENT_TWEAKER}', minecraft.tweakClass
|
|
}
|
|
|
|
// manifest entries for all jars
|
|
def jarManifest = {
|
|
mainAttributes (
|
|
'Built-By': System.properties['user.name'],
|
|
'Created-By': System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")",
|
|
'Implementation-Title': name,
|
|
'Implementation-Version': version + "+" + ciSystem + "-b" + buildNumber + ".git-" + commit,
|
|
'Implementation-Vendor': url
|
|
)
|
|
}
|
|
|
|
jar {
|
|
doFirst {
|
|
// Seriously forge?
|
|
ant.replace(
|
|
file: sourceSets.main.refMapFile,
|
|
token: "func_72355_a(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;)V",
|
|
value: "initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V"
|
|
)
|
|
}
|
|
from sourceSets.client.output
|
|
from sourceSets.debug.output
|
|
manifest jarManifest
|
|
}
|
|
|
|
task releaseJar(type: Jar) {
|
|
from sourceSets.main.output
|
|
from sourceSets.client.output
|
|
|
|
manifest jarManifest
|
|
classifier = 'staging'
|
|
}
|
|
|
|
shadowJar {
|
|
manifest jarManifest
|
|
dependsOn 'reobfReleaseJar'
|
|
|
|
from sourceSets.main.output
|
|
from sourceSets.client.output
|
|
|
|
exclude 'META-INF/*.DSA'
|
|
exclude 'META-INF/*.RSA'
|
|
exclude 'dummyThing'
|
|
exclude 'LICENSE.txt'
|
|
|
|
dependencies {
|
|
include(dependency('org.spongepowered:mixin'))
|
|
}
|
|
|
|
classifier = 'release'
|
|
}
|
|
|
|
sourceJar {
|
|
dependsOn retromapReplacedDebug
|
|
dependsOn retromapReplacedClient
|
|
|
|
from zipTree(tasks.retromapReplacedDebug.out)
|
|
from zipTree(tasks.retromapReplacedClient.out)
|
|
}
|
|
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
from javadoc.destinationDir
|
|
classifier = 'javadoc'
|
|
}
|
|
|
|
// Hey @AbrarSyed why can't we just turn this off >:(
|
|
task runClient(type: JavaExec, overwrite: true) {
|
|
doFirst {
|
|
println "Do not use runClient, it is not compatible with Mixin"
|
|
System.exit(-1)
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs += [
|
|
'-Xlint:all',
|
|
'-Xlint:-path',
|
|
'-Xlint:-rawtypes',
|
|
'-Xlint:-processing'
|
|
]
|
|
options.deprecation = true
|
|
options.encoding = 'utf8'
|
|
}
|
|
|
|
if (JavaVersion.current().isJava8Compatible()) {
|
|
tasks.withType(Javadoc) {
|
|
// disable the crazy super-strict doclint tool in Java 8
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
}
|
|
|
|
reobf {
|
|
jar {
|
|
mappingType = 'SEARGE'
|
|
}
|
|
releaseJar {
|
|
mappingType = 'NOTCH'
|
|
classpath = sourceSets.main.compileClasspath
|
|
}
|
|
shadowJar {
|
|
mappingType = 'NOTCH'
|
|
classpath = sourceSets.main.compileClasspath
|
|
}
|
|
}
|
|
|
|
build.dependsOn {[
|
|
'reobfReleaseJar',
|
|
'reobfShadowJar'
|
|
]}
|
|
|
|
artifacts {
|
|
if (project.isReleaseBuild) {
|
|
archives jar
|
|
}
|
|
archives shadowJar
|
|
archives sourceJar
|
|
archives javadocJar
|
|
}
|
|
|
|
task deploy(type: Copy, dependsOn: build) {
|
|
def libraryDir = new File(new File(System.env.APPDATA), ".minecraft/libraries")
|
|
from shadowJar.outputs.files[0]
|
|
into new File(libraryDir, sprintf('%1$s%4$s%2$s%4$s%3$s', project.group.replace('.', File.separator), archivesBaseName, buildVersion, File.separatorChar))
|
|
rename shadowJar.outputs.files[0].name, sprintf("%s-%s.jar", archivesBaseName, buildVersion)
|
|
}
|
|
|
|
uploadArchives {
|
|
repositories {
|
|
mavenDeployer {
|
|
if (project.hasProperty(project.mavenRepo)) {
|
|
repository(url: project.getProperty(project.mavenRepo)) {
|
|
authentication(userName: project.mavenUsername, password: project.mavenPassword)
|
|
}
|
|
}
|
|
pom {
|
|
groupId = project.group
|
|
version = project.version
|
|
artifactId = project.archivesBaseName
|
|
project {
|
|
name project.archivesBaseName
|
|
packaging 'jar'
|
|
description 'LiteLoader'
|
|
url 'http://www.liteloader.com/'
|
|
scm {
|
|
url 'http://develop.liteloader.com/liteloader/LiteLoader'
|
|
connection 'scm:git:http://develop.liteloader.com/liteloader/LiteLoader.git'
|
|
developerConnection 'scm:git:http://develop.liteloader.com/liteloader/LiteLoader.git'
|
|
}
|
|
issueManagement {
|
|
system 'GitLab Issues'
|
|
url 'http://develop.liteloader.com/liteloader/LiteLoader/issues'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|