mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-10-26 14:23:57 +00:00
This reverts commit b3b1a6a415.
Conflicts:
lang
src/main/java/forestry/Forestry.java
src/main/java/forestry/plugins/PluginManager.java
347 lines
7.6 KiB
Groovy
Executable File
347 lines
7.6 KiB
Groovy
Executable File
buildscript {
|
|
repositories {
|
|
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-SNAPSHOT'
|
|
// https://github.com/ajoberstar/gradle-git
|
|
classpath 'org.ajoberstar:gradle-git:0.8.0'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'forge'
|
|
apply plugin: 'maven'
|
|
|
|
loadProperties()
|
|
|
|
version = version_major + '.' + version_minor + '.' + version_patch + '.' + getBuildNumber()
|
|
if (project.hasProperty('buildQualifier')) {
|
|
version = project.version + '-' + project.buildQualifier
|
|
}
|
|
group= "net.sengir.forestry" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
|
archivesBaseName = "forestry_" + mcversion
|
|
|
|
ext.dirDest = './build/dist'
|
|
ext.dirLang = "./lang"
|
|
|
|
ext.apiForestry = "./api/forestry"
|
|
ext.apiRedstoneFlux = "./api/redstoneflux"
|
|
|
|
ext.CraftGuideRepo = "https://github.com/Uristqwerty/CraftGuide.git"
|
|
ext.CraftGuideTmp = "build/tmp/CraftGuide"
|
|
|
|
minecraft {
|
|
version = mcversion + "-" + forgeversion
|
|
runDir = "run"
|
|
|
|
replace '@VERSION@', project.version
|
|
replace '@BUILD_NUMBER@', getBuildNumber()
|
|
}
|
|
|
|
sourceSets {
|
|
api {
|
|
java {
|
|
srcDir CraftGuideTmp + "/src"
|
|
include '**/CraftGuide/api/**'
|
|
}
|
|
}
|
|
|
|
main {
|
|
java {
|
|
srcDir project.apiForestry
|
|
srcDir project.apiRedstoneFlux + "/src/main/java"
|
|
}
|
|
resources {
|
|
srcDir project.dirLang
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
name = "ic2"
|
|
url = "http://maven.ic2.player.to/"
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
api
|
|
compile.extendsFrom api
|
|
}
|
|
|
|
dependencies {
|
|
api 'net.industrial-craft:industrialcraft-2:2.2.575-experimental:api'
|
|
api 'com.mod-buildcraft:buildcraft:6.3.1:dev'
|
|
}
|
|
|
|
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 '**/*.md'
|
|
}
|
|
}
|
|
|
|
runClient {
|
|
if (project.hasProperty('mcUsername')) {
|
|
args "--username=" + project.mcUsername
|
|
}
|
|
if (project.hasProperty('mcPassword')) {
|
|
args "--password=" + project.mcPassword
|
|
}
|
|
}
|
|
|
|
debugClient {
|
|
if (project.hasProperty('mcUsername')) {
|
|
args "--username=" + project.mcUsername
|
|
}
|
|
if (project.hasProperty('mcPassword')) {
|
|
args "--password=" + project.mcPassword
|
|
}
|
|
}
|
|
|
|
task echoVersion << {
|
|
printNextVersion()
|
|
}
|
|
|
|
def saveVersion() {
|
|
ant.propertyfile(
|
|
file: "application.properties") {
|
|
entry( key:"version_major", type:"int", value: version_major)
|
|
entry( key:"version_minor", type:"int", value: version_minor)
|
|
entry( key:"version_patch", type:"int", value: version_patch)
|
|
}
|
|
project.version = version_major + '.' + version_minor + '.' + version_patch + '.' + getBuildNumber()
|
|
printNextVersion()
|
|
}
|
|
|
|
def printNextVersion() {
|
|
println '*************************************************************'
|
|
println 'The next build will be version: ' + project.version
|
|
println '*************************************************************'
|
|
}
|
|
|
|
task bumpMajor << {
|
|
project.version_major = Integer.parseInt(project.version_major) + 1
|
|
project.version_minor = "0"
|
|
project.version_patch = "0"
|
|
saveVersion()
|
|
}
|
|
|
|
task bumpMinor << {
|
|
project.version_minor = Integer.parseInt(project.version_minor) + 1
|
|
project.version_patch = "0"
|
|
saveVersion()
|
|
}
|
|
|
|
task bumpPatch << {
|
|
project.version_patch = Integer.parseInt(project.version_patch) + 1
|
|
saveVersion()
|
|
}
|
|
|
|
import org.ajoberstar.grgit.Grgit
|
|
|
|
task initCraftGuide << {
|
|
def localRepo = file(CraftGuideTmp)
|
|
|
|
if (localRepo.exists()) {
|
|
println 'Updating CraftGuide repo'
|
|
def grgit = Grgit.open(localRepo)
|
|
grgit.pull()
|
|
grgit.close()
|
|
} else {
|
|
println 'Cloning CraftGuide repo'
|
|
def grgit = Grgit.clone(dir: localRepo, uri: CraftGuideRepo)
|
|
grgit.close()
|
|
}
|
|
}
|
|
|
|
jar {
|
|
destinationDir = file("build/tmp")
|
|
archiveName = "main.jar"
|
|
|
|
// Copy various READMEs and Licensing files into the jar
|
|
into ('forestry/api') {
|
|
from project.apiForestry + "/LICENSE.txt"
|
|
}
|
|
into ('cofh/api') {
|
|
from project.apiRedstoneFlux + "/LICENSE - LGPLv3.txt"
|
|
}
|
|
into ('buildcraft/api') {
|
|
from "./src/main/java/buildcraft/LICENSE-API"
|
|
}
|
|
}
|
|
|
|
task mainJarSigned ( type: Jar, dependsOn: 'reobf' ) {
|
|
from (zipTree(jar.getArchivePath())) {
|
|
exclude '**/api/**'
|
|
exclude '**/codechicken/**'
|
|
}
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
destinationDir = file("build/tmp")
|
|
archiveName = "signed.jar"
|
|
|
|
doLast {
|
|
if (project.hasProperty('signingKeystore')) {
|
|
ant.signjar(jar: getArchivePath(),
|
|
alias: signingAlias,
|
|
keystore: signingKeystore,
|
|
storepass: signingStorepass)
|
|
} else {
|
|
println 'Signing disabled, gradle.properties is missing.'
|
|
}
|
|
}
|
|
}
|
|
|
|
task mainJar ( type: Zip, dependsOn: mainJarSigned ) {
|
|
from (zipTree(mainJarSigned.getArchivePath())) {
|
|
include '**'
|
|
}
|
|
|
|
from (zipTree(jar.getArchivePath())) {
|
|
include '**'
|
|
exclude '**/codechicken/**'
|
|
}
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
destinationDir = file(dirDest)
|
|
includeEmptyDirs = false
|
|
extension = 'jar'
|
|
}
|
|
|
|
task devJarSigned ( type: Jar, dependsOn: 'classes' ) {
|
|
from(sourceSets.main.output) {
|
|
exclude '**/api/**'
|
|
exclude '**/codechicken/**'
|
|
}
|
|
|
|
destinationDir = file("build/tmp")
|
|
archiveName = "signed-dev.jar"
|
|
|
|
doLast {
|
|
if (project.hasProperty('signingKeystore')) {
|
|
ant.signjar(jar: getArchivePath(),
|
|
alias: signingAlias,
|
|
keystore: signingKeystore,
|
|
storepass: signingStorepass)
|
|
} else {
|
|
println 'Signing disabled, gradle.properties is missing.'
|
|
}
|
|
}
|
|
}
|
|
|
|
task devJar ( type: Zip, dependsOn: devJarSigned ) {
|
|
from (zipTree(devJarSigned.getArchivePath())) {
|
|
include '**'
|
|
}
|
|
|
|
from(sourceSets.main.allSource) {
|
|
include '**'
|
|
exclude '**/codechicken/**'
|
|
}
|
|
|
|
from(sourceSets.main.output) {
|
|
include '**'
|
|
exclude '**/codechicken/**'
|
|
}
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
destinationDir = file(dirDest)
|
|
extension = 'jar'
|
|
|
|
classifier = 'dev'
|
|
}
|
|
|
|
task apiJar(type: Jar, dependsOn: 'classes') {
|
|
from project.apiForestry
|
|
|
|
from (sourceSets.main.output) {
|
|
include 'forestry/api/**'
|
|
}
|
|
|
|
destinationDir = file(dirDest)
|
|
extension = 'jar'
|
|
classifier = 'api'
|
|
}
|
|
|
|
task releaseInit << {
|
|
println '*************************************************************'
|
|
println 'This build will be version: ' + rootProject.version
|
|
println '*************************************************************'
|
|
}
|
|
|
|
task release (dependsOn: [releaseInit, apiJar, devJar, mainJar]) {
|
|
}
|
|
|
|
mainJar.shouldRunAfter releaseInit
|
|
devJar.shouldRunAfter releaseInit
|
|
apiJar.shouldRunAfter releaseInit
|
|
|
|
afterEvaluate {
|
|
compileApiJava.dependsOn initCraftGuide
|
|
}
|
|
|
|
artifacts {
|
|
archives apiJar
|
|
archives devJar
|
|
}
|
|
|
|
uploadArchives {
|
|
repositories {
|
|
if (project.hasProperty('mavenDir')) {
|
|
mavenDeployer {
|
|
repository(url: "file://"+mavenDir)
|
|
|
|
addFilter('api') { artifact, file ->
|
|
file == apiJar.archivePath
|
|
}
|
|
addFilter('dev') { artifact, file ->
|
|
file == devJar.archivePath
|
|
}
|
|
}
|
|
} else {
|
|
println 'Archives upload disabled, gradle.properties is missing.'
|
|
}
|
|
}
|
|
}
|
|
|
|
def loadProperties() {
|
|
println('loading application.properties')
|
|
|
|
file("application.properties").withReader { reader ->
|
|
def userProps = new Properties()
|
|
userProps.load(reader)
|
|
|
|
for (Map.Entry property in userProps) {
|
|
project.ext[property.getKey()] = property.getValue()
|
|
}
|
|
}
|
|
}
|
|
|
|
def getBuildNumber() {
|
|
return "$System.env.BUILD_NUMBER" != "null" ? "$System.env.BUILD_NUMBER" : "0"
|
|
}
|
|
|