buildscript { repositories { maven { name = "mavenLocal" url = "mavenLocal" } 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.2-SNAPSHOT' classpath "de.undercouch:gradle-download-task:3.1.2" } } plugins { id 'org.ajoberstar.grgit' version '3.1.1' } file "build.properties" withReader { def prop = new Properties() prop.load(it) ext.config = new ConfigSlurper().parse prop } def getVersionAppendage() { def proc = "git rev-parse --short HEAD".execute() proc.waitFor() return "DEV." + proc.exitValue() ? proc.text.trim() : "GITBORK" } ext.set("minecraftVersion","${config.minecraft.version}-${config.forge.version}-${config.minecraft.version}") import de.undercouch.gradle.tasks.download.Download apply plugin: 'forge' apply plugin: 'signing' allprojects { apply plugin: 'java' sourceCompatibility = 1.8 targetCompatibility = 1.8 } sourceSets { main { java { srcDir 'src/main/java' srcDir 'AVRcore/src' } } } version = "${config.minecraft.version}-${config.tectech.version}-"+getVersionAppendage() group = "com.github.technus" archivesBaseName = "TecTech" minecraft.version = ext.get("minecraftVersion") minecraft.runDir = "eclipse" minecraft.replaceIn "src/main/java/com/github/technus/tectech/Reference.java" minecraft.replace "GRADLETOKEN_VERSION", "${config.tectech.version}" configurations { provided embedded compile.extendsFrom provided, embedded } repositories { maven { //Computercraft, NEI, chicken core and lib name = "GregTech maven" url = "https://gregtech.overminddl1.com/" } maven { //YAMCore name 'UsrvDE maven' url "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/" } maven { //IC2 name = "IC2 maven" url = "http://maven.ic2.player.to/" } maven { // Baubles and Thaumcraft name 'MC Mod Dev maven' url 'https://maven.mcmoddev.com/' } maven { // OpenComputers name "OpenComputers maven" url "http://maven.cil.li/" } maven { // EnderIO name "Tterrag maven" url "https://maven.tterrag.com/" } maven { name = "Curse Maven" url = "https://www.cursemaven.com" } //ivy { //CoFHCore // name 'gtnh_download_source' // artifactPattern "http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]-[revision].[ext]" //} } dependencies { compile "eu.usrv:YAMCore:${config.minecraft.version}-${config.yamcore.version}:deobf" compile "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" compile "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:api" compile "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" compile "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev" compile "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" compile "com.azanor:Baubles:${config.minecraft.version}-${config.baubles.version}" compile "com.azanor:Thaumcraft:${config.minecraft.version}-${config.thaumcraft.version}:deobf" compile "li.cil.oc:OpenComputers:MC${config.minecraft.version}-${config.opencomputers.version}:dev" compile "com.enderio.core:EnderCore:${config.minecraft.version}-${config.endercore.version}" compile ("com.enderio:EnderIO:${config.minecraft.version}-${config.enderio.version}"){ exclude module: 'Waila' exclude module: 'EnderCore' } compile "mcp.mobius.waila:Waila:${config.waila.version}_${config.minecraft.version}" //Greg compile "dan200.computercraft:ComputerCraft:${config.computercraft.version}" compile "micdoodle8.mods:MicdoodleCore:${config.galacticraft.version}:Dev" compile "micdoodle8.mods:GalacticraftCore:${config.galacticraft.version}:Dev" compile "micdoodle8.mods:Galacticraft-Planets:${config.galacticraft.version}:Dev" compile "micdoodle8.mods:Galacticraft:${config.galacticraft.version}:API" compile "com.mod-buildcraft:buildcraft:${config.buildcraft.version}:dev" //TODO Re-work the formatting and add documentation runtime "curse.maven:cofh-core:${config.cofh_core_version}" //Ivy //compile name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' } task getGregTech(type: Download) { onlyIf { !file("libs/gregtech-${config.gregtech.version}-dev.jar").exists() } src "http://jenkins.usrv.eu:8080/job/Gregtech-5-Unofficial/${config.gregtech.jenkinsbuild}/artifact/build/libs/gregtech-${config.gregtech.version}-dev.jar" dest file("libs/gregtech-${config.gregtech.version}-dev.jar") mustRunAfter "deobfBinJar" mustRunAfter "repackMinecraft" delete fileTree("$projectDir/libs/") { include 'gregtech-*-dev.jar' exclude "gregtech-${config.gregtech.version}-dev.jar" } } task submodulesUpdate(type: Exec) { description 'Updates (and inits) git submodules' commandLine 'git', 'submodule', 'update', '--init', '--recursive','--remote' group 'Build Setup' } tasks.setupCIWorkspace.dependsOn submodulesUpdate tasks.setupDevWorkspace.dependsOn submodulesUpdate tasks.setupDecompWorkspace.dependsOn submodulesUpdate tasks.compileJava.dependsOn submodulesUpdate tasks.sourceMainJava.dependsOn submodulesUpdate tasks.setupCIWorkspace.dependsOn getGregTech tasks.setupDevWorkspace.dependsOn getGregTech tasks.setupDecompWorkspace.dependsOn getGregTech tasks.compileJava.dependsOn getGregTech processResources { def cleanVersion = project.version.split('-')[1] // this will ensure that this task is redone when the versions change. inputs.property "version", cleanVersion 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': cleanVersion, 'mcversion': project.minecraft.version } // copy everything else, thats not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } } task devJar(type: Jar) { from sourceSets.main.output classifier = 'dev' } artifacts { archives devJar } task signJar(dependsOn: 'reobf') { doLast { ant.signjar( destDir: jar.destinationDir, jar: jar.getArchivePath(), alias: findProperty('keyStoreAlias') ?: '', keystore: findProperty('keyStore') ?: '', storepass: findProperty('keyStorePass') ?: '', digestalg: findProperty('signDigestAlg') ?: '', tsaurl: findProperty('signTSAurl') ?: '', verbose: true ) } } jar { manifest { attributes "FMLAT": "tectech_at.cfg" } }