mirror of
https://github.com/MinecraftForge/MinecraftForge
synced 2026-08-22 04:26:10 -04:00
CoreMods 5.1.13 changelog: https://gist.github.com/Jonathing/905d142447ecef670526ae27243adbba
85 lines
3 KiB
Groovy
85 lines
3 KiB
Groovy
import net.minecraftforge.forge.tasks.CleanProperties
|
|
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'idea'
|
|
apply plugin: 'net.minecraftforge.gradleutils'
|
|
|
|
group = 'net.minecraftforge'
|
|
version = VERSION
|
|
println("Version: $version")
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven gradleutils.forgeMaven
|
|
maven gradleutils.minecraftLibsMaven
|
|
//mavenLocal()
|
|
}
|
|
|
|
tasks.withType(Javadoc).configureEach {
|
|
options.tags = [
|
|
'apiNote:a:<em>API Note:</em>',
|
|
'implSpec:a:<em>Implementation Requirements:</em>',
|
|
'implNote:a:<em>Implementation Note:</em>'
|
|
]
|
|
options.addStringOption('Xdoclint:all,-missing', '-public')
|
|
}
|
|
|
|
// We need to write the manifest to the binary file so we have properly versioned packaged at dev time.
|
|
tasks.register('writeManifest') {
|
|
doLast {
|
|
if (plugins.findPlugin('net.minecraftforge.gradle.patcher')) // Forge project
|
|
universalJar.manifest.writeTo(rootProject.file('src/main/resources/META-INF/MANIFEST.MF'))
|
|
else
|
|
jar.manifest.writeTo(project.file('src/main/resources/META-INF/MANIFEST.MF'))
|
|
}
|
|
}
|
|
|
|
tasks.register('generateResources') {
|
|
dependsOn('writeManifest')
|
|
}
|
|
|
|
// Make sure out manifests get written before compiling the code, IDEA calls this task if you tell it to use the gradle build.
|
|
tasks.withType(JavaCompile).configureEach {
|
|
dependsOn 'generateResources'
|
|
dependsOn 'processResources' // Needed because we merge the output of this with the output of the compile task. And gradle detects downstream tasks using the output without a hard dep
|
|
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
|
options.warnings = false // Shutup deprecated for removal warnings
|
|
options.forkOptions.jvmArgs += '-Xmx3G' // Needed to make compiling faster, and not run out of heap space in some cases.
|
|
}
|
|
|
|
// Merge the resources and classes into the same directory. We'll need to split them at runtime because
|
|
// Minecraft and Forge are in the same sourceSet as they are inter dependent.. for now..
|
|
sourceSets.each {
|
|
def dir = layout.buildDirectory.dir("classes/java/$it.name")
|
|
it.output.resourcesDir = dir
|
|
it.java.destinationDirectory = dir
|
|
}
|
|
|
|
tasks.register('copyEclipseSettings') {
|
|
doLast {
|
|
rootProject.fileTree('ide/eclipse/template/.settings/').matching { include '**/*.prefs' }.each { file ->
|
|
def target = project.file('.settings/' + file.name)
|
|
def temp = new CleanProperties().load(file)
|
|
def exst = new CleanProperties().load(target)
|
|
exst.put('eclipse.preferences.version', '1')
|
|
exst.putAll(temp)
|
|
exst.store(target)
|
|
}
|
|
}
|
|
}
|
|
|
|
// TODO: [Gradle][IntelliJ] Auto trigger these tasks on import.
|
|
eclipse {
|
|
// Run everytime eclipse builds the code
|
|
//autoBuildTasks writeManifest
|
|
// Run when importing the project
|
|
synchronizationTasks generateResources, copyEclipseSettings, eclipseClasspath, eclipseProject
|
|
}
|
|
|
|
idea {
|
|
module {
|
|
// IntelliJ IDEA does not do this by itself anymore...
|
|
downloadJavadoc = true
|
|
downloadSources = true
|
|
}
|
|
}
|