You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
4.8 KiB
Groovy
165 lines
4.8 KiB
Groovy
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
maven {
|
|
name = "forge"
|
|
url = "https://maven.minecraftforge.net/"
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath ('com.anatawa12.forge:ForgeGradle:1.2-1.1.+') {
|
|
changing = true
|
|
}
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'java-library'
|
|
id 'maven-publish'
|
|
// id 'com.github.johnrengelman.shadow' version '6.1.0' // Use the latest version
|
|
}
|
|
|
|
apply plugin: 'forge'
|
|
|
|
// 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
|
|
|
|
version = project.version
|
|
group = project.group
|
|
def yourMixinConfig = 'mixins.cindercore_modlist.json'
|
|
def refMapForYourConfig = 'mixins.cindercore_modlist.refmap.json'
|
|
def relativePathToMixinAP = 'libs/mixin-0.8-SNAPSHOT.jar'
|
|
def refMap = 'src/main/resources/' + refMapForYourConfig
|
|
def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg"
|
|
|
|
repositories {
|
|
flatDir {
|
|
dirs 'libs'
|
|
}
|
|
maven {
|
|
name = 'sponge'
|
|
url = 'https://repo.spongepowered.org/repository/maven-public'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// implementation 'com.google.code.gson:gson:2.8.6'
|
|
implementation('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
|
|
// Mixin includes a lot of dependencies that are too up-to-date
|
|
exclude module: 'launchwrapper'
|
|
exclude module: 'guava'
|
|
exclude module: 'gson'
|
|
exclude module: 'commons-io'
|
|
exclude module: 'log4j-core'
|
|
}
|
|
// implementation name: 'mixin-0.8-SNAPSHOT', ext: 'jar'
|
|
// implementation name: 'SpongeMixins-1.5.0', ext: 'jar'
|
|
implementation name: 'cindercore', ext: 'jar'
|
|
}
|
|
|
|
minecraft {
|
|
version = project.minecraft_version + "-" + project.forge_version
|
|
runDir = "run"
|
|
}
|
|
|
|
|
|
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 values in only mcmod.info.
|
|
filesMatching('mcmod.info') {
|
|
// Replace version and mcversion.
|
|
expand 'version':project.version, 'mcversion':project.minecraft.version
|
|
}
|
|
}
|
|
|
|
// 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"
|
|
}
|
|
|
|
// This task creates a .jar file containing the source code of this mod.
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
classifier = "sources"
|
|
from sourceSets.main.allSource
|
|
}
|
|
|
|
// This task creates a .jar file containing a deobfuscated version of this mod, for other developers to use in a development environment.
|
|
task devJar(type: Jar) {
|
|
classifier = "dev"
|
|
from sourceSets.main.output
|
|
}
|
|
|
|
// Creates the listed artifacts on building the mod.
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives devJar
|
|
}
|
|
|
|
// This block configures any maven publications you want to make.
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
// Add any other artifacts here that you would like to publish!
|
|
artifact(jar) {
|
|
builtBy build
|
|
}
|
|
artifact(sourcesJar) {
|
|
builtBy sourcesJar
|
|
}
|
|
artifact(devJar) {
|
|
builtBy devJar
|
|
}
|
|
}
|
|
}
|
|
|
|
// This block selects the repositories you want to publish to.
|
|
}
|
|
|
|
jar {
|
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
|
|
|
from sourceSets.main.output.resourcesDir
|
|
from refMap
|
|
manifest {
|
|
attributes([
|
|
"Manifest-Version": "1.0",
|
|
"TweakClass": "org.spongepowered.asm.launch.MixinTweaker",
|
|
'MixinConfigs': yourMixinConfig,
|
|
"FMLCorePlugin": "com.zivilon.cindercore_modlist.coremod.ModListCore",
|
|
'FMLCorePluginContainsFMLMod': 'true',
|
|
"ForceLoadAsMod": true
|
|
])
|
|
}
|
|
}
|
|
reobf {
|
|
addExtraSrgFile mixinSrg
|
|
}
|
|
afterEvaluate {
|
|
def fixedRelPathToAP = relativePathToMixinAP
|
|
if(fixedRelPathToAP.startsWith('./') || fixedRelPathToAP.startsWith('.\\')){
|
|
fixedRelPathToAP = fixedRelPathToAP.substring(2)
|
|
} else if(fixedRelPathToAP.startsWith('/') || fixedRelPathToAP.startsWith('\\')){
|
|
fixedRelPathToAP = fixedRelPathToAP.substring(1)
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.annotationProcessorPath = files(projectDir.absolutePath + '/' + fixedRelPathToAP)
|
|
println "Refmap path: ${refMap}"
|
|
options.compilerArgs += [
|
|
"-ArefMapFile=${refMap}",
|
|
"-AoutRefMapFile=${refMap}",
|
|
"-AdefaultObfuscationEnv=searge"
|
|
]
|
|
}
|
|
}
|
|
sourceSets {
|
|
main {
|
|
output.resourcesDir = output.classesDirs.asPath
|
|
ext.refMap = refMapForYourConfig
|
|
}
|
|
}
|