yarn/filament/build.gradle

110 lines
2.8 KiB
Groovy

import org.gradle.util.GradleVersion
plugins {
id 'java-library'
id 'java-gradle-plugin'
id 'checkstyle'
id 'maven-publish'
}
group = 'net.fabricmc'
version = project.filament_version
def ENV = System.getenv()
// Needed to read the main projects properties
def properties = new Properties()
file('../gradle.properties').newInputStream().withCloseable {
properties.load(it)
}
repositories {
maven {
name "Fabric Repository"
url 'https://maven.fabricmc.net'
}
mavenCentral()
}
dependencies {
implementation "org.ow2.asm:asm:${properties.asm_version}"
implementation "org.ow2.asm:asm-tree:${properties.asm_version}"
implementation "cuchaz:enigma:$properties.enigma_version"
implementation "net.fabricmc.unpick:unpick:$properties.unpick_version"
implementation "net.fabricmc.unpick:unpick-format-utils:$properties.unpick_version"
implementation "net.fabricmc:tiny-mappings-parser:$properties.tiny_mappings_parser_version"
implementation "net.fabricmc:tiny-remapper:$properties.tiny_remapper_version"
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2'
// Contains a number of useful utilities we can re-use.
implementation ("net.fabricmc:fabric-loom:1.0.7") {
transitive = true
}
implementation ('net.fabricmc:stitch:0.6.2') {
exclude module: 'enigma'
}
testImplementation platform("org.junit:junit-bom:$properties.junit_version")
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation "org.assertj:assertj-core:$properties.assertj_version"
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
}
test {
useJUnitPlatform()
}
checkstyle {
configFile = file('checkstyle.xml')
toolVersion = '10.3.3'
}
gradlePlugin {
plugins {
filament {
id = 'net.fabricmc.filament'
implementationClass = 'net.fabricmc.filament.FilamentGradlePlugin'
}
}
}
publishing {
repositories {
if (ENV.MAVEN_URL) {
repositories.maven {
name "fabric"
url ENV.MAVEN_URL
credentials {
username ENV.MAVEN_USERNAME
password ENV.MAVEN_PASSWORD
}
}
}
}
}
/**
* Run this task to download the gradle sources next to the api jar, you may need to manually attach the sources jar
*/
task downloadGradleSources() {
doLast {
// Awful hack to find the gradle api location
def gradleApiFile = project.configurations.detachedConfiguration(dependencies.gradleApi()).files.stream()
.filter {
it.name.startsWith("gradle-api")
}.findFirst().orElseThrow()
def gradleApiSources = new File(gradleApiFile.absolutePath.replace(".jar", "-sources.jar"))
def url = "https://services.gradle.org/distributions/gradle-${GradleVersion.current().getVersion()}-src.zip"
gradleApiSources.delete()
println("Downloading (${url}) to (${gradleApiSources})")
gradleApiSources << new URL(url).newInputStream()
}
}