Files
architectury-loom/build.gradle
Juuxel 186b09518b Revert "Try using SpecialSource directly instead of going through ForgeGradle"
This reverts commit 3f9c6978.
While this could work in theory, I'd also have to reimplement and run
the ForgeGradle jar stripping function myself. Delegating the work to
ForgeGradle is simple enough for now, though it limits Loom to Gradle 5.
2020-07-28 00:44:31 +03:00

187 lines
4.5 KiB
Groovy

plugins {
id 'java'
id 'maven-publish'
id 'java-gradle-plugin'
id 'idea'
id 'eclipse'
id 'groovy'
id 'checkstyle'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
group = 'net.fabricmc'
archivesBaseName = project.name
def baseVersion = '0.5'
def build = 'local'
def ENV = System.getenv()
if (ENV.BUILD_NUMBER) {
build = 'jenkins #${ENV.BUILD_NUMBER}'
version = baseVersion + '.' + ENV.BUILD_NUMBER
} else {
version = baseVersion + '-forge.28'
}
repositories {
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
}
maven {
name = 'Forge'
url = 'https://files.minecraftforge.net/maven/'
}
mavenCentral()
}
dependencies {
implementation gradleApi()
// libraries
implementation ('commons-io:commons-io:2.6')
implementation ('org.zeroturnaround:zt-zip:1.13')
implementation ('com.google.code.gson:gson:2.8.5')
implementation ('com.google.guava:guava:28.0-jre')
// game handling utils
implementation ('net.fabricmc:stitch:0.4.6+build.74') {
exclude module: 'enigma'
}
// tinyfile management
implementation ('net.fabricmc:tiny-remapper:0.3.0.70')
implementation ('net.fabricmc:tiny-mappings-parser:0.2.2.14')
implementation ('net.fabricmc:lorenz-tiny:2.0.0+build.2') {
transitive = false
}
// decompilers
implementation ('net.fabricmc:procyon-fabric-compilertools:0.5.35.13')
implementation ('org.jetbrains:intellij-fernflower:1.2.1.16')
implementation ('org.benf:cfr:0.150')
// source code remapping
implementation ('org.cadixdev:mercury:0.1.0.fabric-SNAPSHOT')
// Kapt integration
compileOnly('org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72')
// Forge patches
implementation ('net.minecraftforge:binarypatcher:1.1.1')
implementation ('org.cadixdev:lorenz:0.5.3')
implementation ('org.cadixdev:lorenz-asm:0.5.3')
implementation ('org.cadixdev:atlas:0.2.0')
implementation ('net.minecraftforge.gradle:ForgeGradle:3.0.179')
// Testing
testImplementation(gradleTestKit())
testImplementation('org.spockframework:spock-core:1.3-groovy-2.4') {
exclude module: 'groovy-all'
}
}
jar {
manifest {
attributes 'Implementation-Version': version + ' Build(' + build + ')'
}
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle'
license {
exclude '**/loom/util/DownloadUtil.java'
}
checkstyle {
configFile = file('checkstyle.xml')
toolVersion = '8.25'
}
checkstyleMain {
logging.setLevel(LogLevel.LIFECYCLE)
}
gradlePlugin {
plugins {
fabricLoom {
id = 'fabric-loom'
implementationClass = 'net.fabricmc.loom.LoomGradlePlugin'
}
}
}
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.w3c.dom.Node
publishing {
publications {
plugin(MavenPublication) { publication ->
groupId project.group
artifactId project.archivesBaseName
version project.version
from components['java']
artifact sourcesJar
artifact javadocJar
}
// Also publish a snapshot so people can use the latest version if they wish
snapshot(MavenPublication) { publication ->
groupId project.group
artifactId project.archivesBaseName
version baseVersion + '-SNAPSHOT'
from components['java']
artifact sourcesJar
artifact javadocJar
}
// Manually crate the plugin marker for snapshot versions
snapshotPlugin(MavenPublication) { publication ->
groupId 'fabric-loom'
artifactId 'fabric-loom.gradle.plugin'
version baseVersion + '-SNAPSHOT'
pom.withXml({
// Based off org.gradle.plugin.devel.plugins.MavenPluginPublishPlugin
Element root = asElement()
Document document = root.getOwnerDocument()
Node dependencies = root.appendChild(document.createElement('dependencies'))
Node dependency = dependencies.appendChild(document.createElement('dependency'))
Node groupId = dependency.appendChild(document.createElement('groupId'))
groupId.setTextContent('net.fabricmc')
Node artifactId = dependency.appendChild(document.createElement('artifactId'))
artifactId.setTextContent('fabric-loom')
Node version = dependency.appendChild(document.createElement('version'))
version.setTextContent(baseVersion + '-SNAPSHOT')
})
}
}
repositories {
maven {
url 'http://mavenupload.modmuss50.me/'
if (project.hasProperty('mavenPass')) {
credentials {
username 'buildslave'
password project.getProperty('mavenPass')
}
}
}
}
}