buildscript { repositories { mavenLocal() mavenCentral() jcenter() //maven { // name = "forge" // url = "http://files.minecraftforge.net/maven" //} maven { name = "gt" url = "https://gregtech.overminddl1.com/" } maven { name = "sonatype" url = "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url = "https://plugins.gradle.org/m2/" } } dependencies { classpath "net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT" //classpath "gradle.plugin.se.bjurr.gitchangelog:git-changelog-gradle-plugin:1.55" classpath 'net.sf.proguard:proguard-gradle:6.2.2' } } // Because Forge is too stupid to fix Deprecation Issues, and we cannot fix it on our end! (until we fork Forge) allprojects { tasks.withType(Javadoc) { //options.compilerArgs << "-Xlint:deprecation" options.addStringOption('Xdoclint:none', '-quiet') } } apply plugin: 'eclipse' eclipse { classpath { downloadJavadoc = true downloadSources = true } } apply plugin: 'idea' idea{ module { downloadJavadoc = true downloadSources = true } } apply plugin: 'forge' file "build.properties" withReader { def prop = new Properties() prop.load(it) ext.config = new ConfigSlurper().parse prop } file "version.properties" withReader { def prop = new Properties() prop.load(it) ext.config2 = new ConfigSlurper().parse prop } //apply plugin: 'se.bjurr.gitchangelog.git-changelog-gradle-plugin' version = "${config.gtpp.version}.${config2.mod.version}" group= "gtPlusPlus" archivesBaseName = "GT-PlusPlus" //Java Version sourceCompatibility = 1.8 targetCompatibility = 1.8 //Compile against UTF-8 compileTestJava.options.encoding = 'UTF-8' javadoc.options.encoding = 'UTF-8' compileJava.options.encoding = 'UTF-8' minecraft { version = "${config.minecraft.version}-${config.forge.version}" runDir = "eclipse" srgExtra "PK: org/dom4j gtpp/shaded/org/dom4j" srgExtra "PK: org/javassist gtpp/shaded/org/javassist" srgExtra "PK: org/reflections/reflections gtpp/shaded/org/reflections" } idea { module { inheritOutputDirs = true } } configurations { provided embedded shade compile.extendsFrom provided, embedded, shade } repositories { maven { name = "gt" url = "http://gregtech.overminddl1.com/" } maven { name = "ic2" url = "http://maven.ic2.player.to/" } } sourceSets { main { java { srcDirs = ["$projectDir/src/Java"] } resources { srcDirs = ["$projectDir/src/resources"] } } } 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' } exclude '**/Thumbs.db' } dependencies { // Used for productive reflection without class loading. (0.9.12 has no reliance on Guava either) //shade group: 'org.reflections', name: 'reflections', version: '0.9.12' //shade group: 'org.dom4j', name: 'dom4j', version: '2.1.1' //compile group: 'org.javassist', name: 'javassist', version: '3.26.0-GA' //compile files('libs/gregtech-5.08.33-dev.jar') //compile files('libs/gregtech-5.09.31-dev.jar') compile files('libs/gregtech-5.09.33-dev.jar') provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" //compile "ic2:IC2Classic:1.2.1.8:dev" - Does not mirror internal class structure or visibility of IC2, won't ever compile. compile "mcp.mobius.waila:Waila:1.5.11-RC2-NONEI_1.7.10:dev" compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev" compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev" compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev" compile "api.player:PlayerAPI:1.7.10-1.4" compile "minetweaker:MineTweaker3:1.7.10-3.0.10:dev-full" compile "com.enderio.core:EnderCore:1.7.10-0.2.0.39_beta:dev" compile "com.enderio:EnderIO:1.7.10-2.3.0.430_beta:dev" compile "cofh:CoFHCore:1.7.10R3.0.4:dev" compile "cofh:CoFHLib:1.7.10R3.0.3:dev" compileOnly "net.sengir.forestry:forestry_1.7.10:4.2.16.64:dev" compileOnly "mods.railcraft:Railcraft_1.7.10:9.12.3.0:dev" compileOnly files('libs/StevesCarts2.0.0.b18-deobf.jar') compileOnly "openmods:OpenModsLib:1.7.10-0.10:deobf" compileOnly "openblocks:OpenBlocks:1.7.10-1.6-1.7.10:deobf" //compileOnly "micdoodle8.mods:MicdoodleCore:1.7-3.0.12.504:Dev" //compileOnly "micdoodle8.mods:GalacticraftCore:1.7-3.0.12.504:Dev" //compileOnly "micdoodle8.mods:Galacticraft-Planets:1.7-3.0.12.504:Dev" compileOnly "thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev" compile "com.azanor.baubles:Baubles:1.7.10-1.0.1.10:deobf" } jar { archiveName = archivesBaseName + "-" + version + ".jar" manifest { attributes 'FMLCorePlugin': 'gtPlusPlus.preloader.asm.Preloader_FMLLoadingPlugin' attributes 'FMLCorePluginContainsFMLMod': 'true' } configurations.shade.each { dep -> from(project.zipTree(dep)){ exclude 'META-INF', 'META-INF/**' } } } task generateDictionaries(type: JavaExec) { group = "Execution" description = "Generates the dictionaries for Proguard" classpath = sourceSets.main.runtimeClasspath main = "gtPlusPlus.GenerateDictionaries" } // Define a ProGuard task. task proguard(type: proguard.gradle.ProGuardTask) { configuration 'proguard.txt' injars "build/libs/"+archivesBaseName + "-" + version + ".jar" outjars "build/libs/"+archivesBaseName + "-" + version + "-obf.jar" } //task discordChangelogTask(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) { //file = new File("build/changelog/Basic ${project.version}.txt"); //untaggedName = "Current Basic release ${project.version}" //fromCommit = "${config.commit.hash}" //toRef = "HEAD" //templateContent = file('changeloggeneral.mustache').getText('UTF-8') //} //task gitChangelogTask(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) { //file = new File("build/changelog/${project.version}.md"); //untaggedName = "Current release ${project.version}" //fromCommit = "${config.commit.hash}" //toRef = "HEAD" //templateContent = file('changelog.mustache').getText('UTF-8') //} //task curseChangelogTask(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) { //file = new File("build/changelog/Curse ${project.version}.md"); //untaggedName = "Current Curse release ${project.version}" //fromCommit = "${config.commit.hash}" //toRef = "HEAD" //templateContent = file('changelogcurse.mustache').getText('UTF-8') //} // Generate Dicts for Proguard obfuscation build.finalizedBy(generateDictionaries) // Obfuscate this bitch. build.finalizedBy(proguard) // Disabled until optimization is working 100% //build.finalizedBy(gitChangelogTask) //build.finalizedBy(curseChangelogTask) //build.finalizedBy(discordChangelogTask)