/** Common code for Forge 1.7.10 builds */ apply plugin: 'forge' ext.publishDir = project.multiproject_structure.toBoolean() ? "${projectDir}/../publish" : "${projectDir}/publish" def getCommitVersion(){ try { def commitHashProc = "python3 ${ext.publishDir}/get_version.py".execute() commitHashProc.waitFor() if(commitHashProc.exitValue() == 0){ def commitHash = commitHashProc.text.trim() return commitHash } else { println commitHashProc.err.text throw new Exception("get_version.py exited with non-zero return value") } } catch(Exception e){ println "Failed to run get_version.py: " + e.getMessage() } return "UNKNOWN" // fallback } project.version = getCommitVersion() group = project.group archivesBaseName = "${project.archives_base}-${project.minecraft_version}" minecraft { version = "${project.minecraft_version}-${project.forge_version}" runDir = "run" replace '@VERSION@', project.version } // These settings allow you to choose what version of Java you want to be compatible with. Forge 1.7.10 runs on Java 6 to 8. sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { //Needed for forge userdev on gradle 6 maven { name = "Overmind forge repo mirror" url = "https://gregtech.overminddl1.com/" } maven { name = "chickenbones" url = "http://chickenbones.net/maven/" } } configurations { embed implementation.extendsFrom(embed) shade implementation.extendsFrom(shade) } if(project.enable_mixin.toBoolean()) { apply from: "buildscript/forge-1.7-mixin.gradle" } project.ext.override_dependencies = false apply from: "project.gradle" if(!project.ext.override_dependencies) { dependencies { runtimeOnly "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev" runtimeOnly "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev" } } jar { from(sourceSets.main.output); // embed libraries in jar from configurations.embed.collect { exclude '**/LICENSE', '**/LICENSE.txt', 'META-INF/**.RSA' it.isDirectory() ? it : zipTree(it) } configurations.shade.each { dep -> from(project.zipTree(dep)){ exclude '**/LICENSE', '**/LICENSE.txt', 'META-INF', 'META-INF/**' } } } processResources { // This will ensure that this task is redone when the versions or any // user-defined properties change. inputs.property "version", version inputs.property "mcversion", project.minecraft.version inputs.properties project.ext.getProperties() filesMatching('*.info') { expand project.properties } } // Ensures that the encoding of source files is set to UTF-8, see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html tasks.withType(JavaCompile) { options.encoding = "UTF-8" } // Add git commit hash to MANIFEST.MF def getCommitHash(){ try { def commitHashProc = "git describe --always --dirty".execute() commitHashProc.waitFor() if(commitHashProc.exitValue() == 0){ def commitHash = commitHashProc.text.trim() return commitHash } else { println commitHashProc.err.text throw new Exception("git describe exited with non-zero return value") } } catch(Exception e){ println "Failed to get commit version: " + e.getMessage() } return "UNKNOWN" // fallback } jar { manifest { attributes ( 'Commit-ID': getCommitHash(), ) } }