Files
Chisel/build.gradle
T

227 lines
5.8 KiB
Groovy

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'
classpath 'org.ajoberstar:gradle-git:0.10.1'
}
}
plugins {
id 'com.matthewprenger.cursegradle' version '1.0.3'
}
apply plugin: 'forge'
apply plugin: 'maven-publish'
sourceCompatibility = 1.8
targetCompatibility = 1.8
import org.ajoberstar.grgit.Grgit
def repo = Grgit.open(project.file('.'))
project.ext.gitHash = repo.log().find().abbreviatedId
def branchname = repo.branch.getCurrent().fullName
if (branchname.contains('HEAD')) {
branchname = System.getenv("GIT_BRANCH")
}
branchname = branchname.substring(branchname.lastIndexOf('/') + 1)
boolean dev = System.getenv("RELEASE") == null || System.getenv("RELEASE").equalsIgnoreCase("false")
ext.buildnumber = 0
project.buildnumber = System.getenv('BUILD_NUMBER') == null ? "CUSTOM" : System.getenv('BUILD_NUMBER')
version = dev ? "${branchname}-${buildnumber}-${project.ext.gitHash}" : "${mod_version}.${buildnumber}"
group = "team.chisel" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "Chisel"
minecraft {
version = "${minecraft_version}-${forge_version}"
runDir = "run"
replaceIn "Chisel.java"
replace "@VERSION@", project.version
}
configurations {
shade
compile.extendsFrom shade
compile.extendsFrom exportedCompile
}
repositories {
maven {
name 'Chicken Bones Repo'
url "http://chickenbones.net/maven/"
}
maven {
name 'Prof Mobius Repo'
url "http://mobiusstrip.eu/maven"
}
maven {
name 'Chisel Repo'
url "http://maven.tterrag.com/"
}
}
dependencies {
//compile "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev"
compile "codechicken:CodeChickenLib:${minecraft_version}-${ccl_version}:dev"
compile "codechicken:CodeChickenCore:${minecraft_version}-${ccc_version}:dev"
compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev"
compile "codechicken:ForgeMultipart:${minecraft_version}-${fmp_version}:dev"
compile "com.pahimar.ee3:EquivalentExchange3:1.7.10-0.3.505:dev"
shade ("team.chisel.ctmlib:CTMLib:${ctmlib_version}") {
transitive = false
}
}
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'
}
}
jar {
configurations.shade.each { dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**', '*.info'
}
}
manifest {
attributes 'FMLAT': 'chisel_compile_at.cfg'
}
}
// Create deobf dev jars
task deobfJar(type: Jar) {
from sourceSets.main.output
classifier = 'deobf'
}
// Create API jar with sources and compiled files
task apiJar(type: Jar) {
from sourceSets.main.allSource
from sourceSets.main.output
include 'com/cricketcraft/chisel/api/**/*'
classifier = 'api'
}
// Create source attachment for dev jar
task sourcesJar(type: Jar) {
from sourceSets.main.allJava
classifier = 'sources'
}
artifacts {
archives deobfJar
archives sourcesJar
archives apiJar
}
publishing {
tasks.publish.dependsOn 'build'
publications {
mavenJava(MavenPublication) {
artifact jar
artifact deobfJar
artifact sourcesJar
artifact apiJar
}
}
repositories {
if (project.hasProperty('mavendir')) {
maven { url mavendir }
}
}
}
println('Changelog:\n' + getChangelogText())
String getChangelogText() {
def changelogFile = file('changelog.txt')
String str = ''
int lineCount = 0
boolean done = false
changelogFile.eachLine {
if (done || it == null) {
return
}
if (it.size() > 1) {
def temp = it
if (lineCount == 0) {
temp = "Chisel ${version}"
temp = "<h2>$temp</h2>"
} else if (it.startsWith('-')) {
temp = "&nbsp;&nbsp;&nbsp;$temp"
} else {
temp = "<h4>$temp</h4>"
}
str += "$temp<br/>"
lineCount++
return
} else {
done = true
}
}
return str
}
tasks.curseforge.dependsOn 'reobf'
tasks.curseforge.enabled = !dev && project.hasProperty('curseforge_key')
curseforge {
if (project.hasProperty('curseforge_key')) {
apiKey = project.curseforge_key
}
project {
id = project.projectId
changelog = System.getenv('CHANGELOG') == null || System.getenv('CHANGELOG').equals('none') ? getChangelogText() : System.getenv('CHANGELOG')
changelogType = 'html'
releaseType = 'release'
relations {
embeddedLibrary 'ctmlib'
}
mainArtifact(jar) {
displayName = "Chisel - ${version}"
}
addArtifact deobfJar
addArtifact sourcesJar
addArtifact(apiJar) {
relations {}
}
}
}
idea { module { inheritOutputDirs = true } }